2015-12-02 92 views
0

我使用java GWT开发了我的应用程序,并在Google应用程序引擎上部署了我的应用程序。我访问的网址是sample.myappid.appspot.com我想打电话给通过这个代码的网址,所以我做了这样的: -如何从谷歌应用程序引擎调用我的应用程序url

URL url; 
      try { 
       url = new URL("http://sample.myappid.appspot.com"); 

      HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
      connection.setDoOutput(true); 
      connection.setRequestMethod("POST"); 


      if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { 
       // OK 
       logger.log(Level.SEVERE,"Done okkkkkk"); 
      } else { 
       // Server returned HTTP error code. 
       logger.log(Level.SEVERE,"Erorrrrrrr"); 
      } 

      } catch (Exception e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 

这不是叫我的网址。所以任何其他解决方案如何使用代码调用我的URL。

任何帮助?

回答

1

如果/从应用程序的请求处理程序向您的应用程序发出请求时需要注意,因为您可能会导致无限递归循环,使GAE尝试产生新的应用程序实例以尝试提供每个此类请求。可能与您的其他问题有关:while user inactivity of 2mins getting info "This request caused a new process to be started for your application"

有几种方法从自身编程访问你的应用程序,在内部,基本上在应用的服务命名空间路径发出请求(如/index.html为例):

这些内部方法发起的请求在内部是g独立于外部请求,并且可以安全地用于实现你的应用程序的逻辑(如果误用,循环仍然是可能的,但仅仅创建大量的活动,它们不是无限的重新生成/死锁,强制GAE产卵每个请求的新实例)。

您也可以使用应用程序的通用URL访问(适用于任何URL,不仅适用于您的应用程序),就像外部用户访问您的应用程序一样。这些可以为你的应用程序的自动化测试是有用的,但请注意,可以比内部访问方法更昂贵的,我不会推荐他们真正实现您的应用程序的逻辑:

这些外部访问方法也会遇到无限递归问题,因此请小心使用它们。

+0

我想作者问了关于GWT,所以这将是客户端请求,而不是从服务器 –

+0

@IgorArtamonov Hm,可能。我的回应是基于“使用Java GWT开发我的应用程序,并且我在谷歌应用程序引擎上部署了我的应用程序”。如果确实是客户端,答案仍然适用于服务器端实现(递归循环同样可以从外部请求触发)。 –