【问题标题】:Connect GAE Remote API to dev_appserver.py将 GAE 远程 API 连接到 dev_appserver.py
【发布时间】:2016-10-18 12:38:21
【问题描述】:

我想执行一个连接到本地 dev_appserver.py 实例的 Python 脚本来运行一些 DataStore 查询。

dev_appserver.py 正在运行:

builtins:
- remote_api: on

根据https://cloud.google.com/appengine/docs/python/tools/remoteapi 我有:

remote_api_stub.ConfigureRemoteApiForOAuth(
    hostname,
    '/_ah/remote_api'
)

在 Python 脚本中,但是应该将主机名设置为什么?

例如,当 dev_appserver.py 启动时,它会打印:

INFO     2016-10-18 12:02:16,850 api_server.py:205] Starting API server at: http://localhost:56700

但是我将值设置为 localhost:56700,我得到以下错误:

httplib2.SSLHandshakeError: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:590)

(任何运行任何东西的端口都会出现相同的错误 - 例如 8000、8080 等)。

如果有人设法让它成功运行,您使用的主机名是什么?

非常感谢, 内德

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    dev_appserver.py 不支持 SSL(我再也找不到文档参考),所以它无法回答 https:// 请求。

    您可以尝试使用仅限 http 的 URL(不确定远程 API 是否可行 - 我还没有使用它,可能需要在 app.yaml 配置文件中禁用处理程序 secure 选项)。

    至少在我的开发服务器上,我可以将我的浏览器定向到 devserver.py 在启动时报告的仅 http API 服务器 URL,我看到 {app_id: dev~my_app_name, rtok: '0'}

    或者你可以设置一个代理服务器,见GAE dev_appserver.py over HTTPS

    【讨论】:

    • 你有 99% 在那里,并给了我找出最后 1% 所需的东西,所以我将标记为答案。对于阅读本文的任何人 - 答案是使用“API Server”主机(上面的 localhost:56700),然后将“secure=False”添加到 remote_api_stub 调用中。 remote_api_stub.ConfigureRemoteApiForOAuth('localhost:56700', '/_ah/remote_api', secure=False)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2012-02-09
    • 2017-02-09
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多