remote_api_shell.py
在生产服务器上使用远程 api ( ) 可以正常工作。但是,它仅在开发服务器上提供服务时才在开发服务器上工作localhost
。当服务器在特定 IP(例如 )上运行时,它不起作用dev_appserver.py --host=192.168.0.1
。
这是使用 Python SDK。我有点确定这适用于 version 1.7.5
。它不适用于1.7.6
或1.8.0
。
下面是一个具体案例:
运行服务器并让它绑定到默认地址 ( localhost:8080
):
/path/to/dev_appserver.py myapp/app.yaml
INFO 2013-05-25 19:11:15,071 sdk_update_checker.py:244] Checking for updates to the SDK.
INFO 2013-05-25 19:11:15,323 api_server.py:152] Starting API server at: http://localhost:39983
INFO 2013-05-25 19:11:15,403 dispatcher.py:98] Starting server "default" running at: http://localhost:8080
INFO 2013-05-25 19:11:15,405 admin_server.py:117] Starting admin server at: http://localhost:8000
启动远程 API shell,它工作正常:
$ ./remote_api_shell.py -s localhost:8080
Email: x@x
Password:
App Engine remote_api shell
Python 2.7.2+ (default, Jul 20 2012, 22:15:08)
[GCC 4.6.1]
The db, ndb, users, urlfetch, and memcache modules are imported.
dev~furloughfun>
但是,如果您使用指定的主机启动服务器:
/path/to/dev_appserver.py --host=192.168.0.1 myapp/app.yaml
INFO 2013-05-25 19:11:53,304 sdk_update_checker.py:244] Checking for updates to the SDK.
INFO 2013-05-25 19:11:53,554 api_server.py:152] Starting API server at: http://localhost:44650
INFO 2013-05-25 19:11:53,633 dispatcher.py:98] Starting server "default" running at: http://192.168.0.1:8080
INFO 2013-05-25 19:11:53,634 admin_server.py:117] Starting admin server at: http://localhost:8000
请注意,Starting API server at: http://localhost:44650
即使内容在http://192.168.0.1:8080
. 这是否表明您只能在 localhost 上运行远程 api?也许是出于安全原因?
此外,当您remote_api_shell.py
现在尝试时,您只能使用有效帐户(不允许伪造帐户)登录,它会立即出错并终止。
控制台错误以:
urllib2.HTTPError: HTTP Error 200: OK
和本地开发服务器输出:
INFO 2013-05-25 19:24:06,674 server.py:528] "GET /_ah/remote_api?rtok=90927106532 HTTP/1.1" 401 57
有人知道这里发生了什么吗?
除了 on 之外是否无法访问远程 API localhost
?如果您的内容在特定 IP 上提供,
是否无法访问远程 API(即使在 上)?localhost