谷歌应用引擎:错误:HTTPError

Jua*_*gas 8 python google-app-engine python-2.7

我正在尝试使用python"Hello world"

  import webapp2

class MainHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write('Hello world!')

app = webapp2.WSGIApplication([
    ('/', MainHandler)
], debug=True)
Run Code Online (Sandbox Code Playgroud)

的app.yaml

application: engineapp
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.app

libraries:
- name: webapp2
  version: "2.5.2"
Run Code Online (Sandbox Code Playgroud)

但是当在Google App Launcher中运行时会出现此错误

INFO     2013-05-22 12:22:40,302 admin_server.py:117] Starting admin server at: xxxxx:8000
HTTPError()
HTTPError()
Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_app_engine\lib\cherrypy\cherrypy\wsgiserver\wsgiserver2.py", line 1302, in communicate
    req.respond()
  File "C:\Program Files (x86)\Google\google_app_engine\lib\cherrypy\cherrypy\wsgiserver\wsgiserver2.py", line 831, in respond
    self.server.gateway(self).respond()
  File "C:\Program Files (x86)\Google\google_app_engine\lib\cherrypy\cherrypy\wsgiserver\wsgiserver2.py", line 2115, in respond
    response = self.req.server.wsgi_app(self.env, self.start_response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\tools\devappserver2\wsgi_server.py", line 246, in __call__
    return app(environ, start_response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\tools\devappserver2\request_rewriter.py", line 311, in _rewriter_middleware
    response_body = iter(application(environ, wrapped_start_response))
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\tools\devappserver2\python\request_handler.py", line 89, in __call__
    self._flush_logs(response.get('logs', []))
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\tools\devappserver2\python\request_handler.py", line 220, in _flush_logs
    apiproxy_stub_map.MakeSyncCall('logservice', 'Flush', request, response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\api\apiproxy_stub_map.py", line 94, in MakeSyncCall
    return stubmap.MakeSyncCall(service, call, request, response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\api\apiproxy_stub_map.py", line 320, in MakeSyncCall
    rpc.CheckSuccess()
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\api\apiproxy_rpc.py", line 156, in _WaitImpl
    self.request, self.response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\ext\remote_api\remote_api_stub.py", line 200, in MakeSyncCall
    self._MakeRealSyncCall(service, call, request, response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\ext\remote_api\remote_api_stub.py", line 226, in _MakeRealSyncCall
    encoded_response = self._server.Send(self._path, encoded_request)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\tools\appengine_rpc.py", line 393, in Send
    f = self.opener.open(req)
  File "C:\Python27\lib\urllib2.py", line 410, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 531, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 503: Service Unavailable
Run Code Online (Sandbox Code Playgroud)

我更改GAE Launcher(1.7.7)版本并重新安装python但不起作用

我正在使用Windows 7,python 2.7和EAG Launcher 1.8.0

小智 22

在使用代理服务器后面使用Google App Engine Launcher 1.8.6的代理服务器时,我的MacOSX遇到了同样的问题.显然"urllib2.py"上的"proxy_bypass"存在问题.

有两种可能的解决方案:

  1. 降级至1.7.5,但是,谁想降级?
  2. 修改"[GAE Instalattion path] /google/appengine/tools/appengine_rpc.py"并查找说明的行

    opener.add_handler(fancy_urllib.FancyProxyHandler())

在我的计算机中它是第578行,然后在行的开头放一个哈希(#),如下所示:

`#opener.add_handler(fancy_urllib.FancyProxyHandler())`
Run Code Online (Sandbox Code Playgroud)

保存文件,停止然后重新启动应用程序.现在dev_appserver.py根本不应该尝试使用任何代理服务器.

如果您的应用程序使用任何外部资源(如SOAP Web服务或类似的东西),并且您无法在没有代理服务器的情况下访问服务器,那么您将不得不降级.请记住,外部JavaScript文件(如facebook SDK或类似文件)是从您的浏览器加载的,而不是从您的应用程序加载的.

由于我没有使用任何外部REST或SOAP服务,它对我有用!

希望它也适合你.


小智 -2

您可能想尝试从命令行运行您的应用程序。跑步

dev_appserver.py --port=8080 myapp
Run Code Online (Sandbox Code Playgroud)

从应用程序的目录中将“myapp”替换为应用程序的名称。

更多信息可以在 GAE 文档中找到: https://developers.google.com/appengine/docs/python/tools/devserver#Running_the_Development_Web_Server