使用 Cloud Endpoints for Google App Engine 对 Android 应用程序进行本地测试

2024-04-30

我正在开发一个 Android 应用程序,它使用 Google App Engine(Python 中)上的 Google Cloud Endpoints 作为后端。 Android 应用程序授权用户在 Android 设备上使用 Google Play 服务,这一切都运行得非常好。

然而,现在我有了实际的用户,我希望能够在将任何应用程序引擎 API 更改部署到生产环境之前在本地测试这一切,而且我还没有弄清楚如何让 Android 应用程序与我的本地开发服务器对话任何地方。这测试建议 https://developers.google.com/appengine/docs/python/endpoints/test_deploy建议我对 API Explorer 进行一些手动修改,但由于我为我的 API 使用 Endpoints Proto Datastore,这使得 Android 开发变得容易,这也使得 API Explorer 基本上毫无用处,因为我需要进行的调用是比我手工生成的要复杂得多。

一个答案这个问题 https://stackoverflow.com/questions/13416777/testing-google-cloud-endpoints-locally表明有一种方法可以将 Android 客户端指向本地服务器,但是虽然我可以使用 --host 参数让 dev_appserver 的默认服务器侦听 localhost 以外的其他服务器,但我似乎找不到方法API 服务器也是如此。即使我能做到这一点,这也可能只是我的 Android 应用程序的完整端到端本地测试设置的第一步。

有人可以发布更多有关我如何执行此操作的详细信息吗?或者,请告诉我在 App Engine 上使用 Google Cloud Endpoints 测试 Android 应用程序的最佳实践?预先感谢您的任何答复。


好吧,终于成功了,谢谢你的提示,丹!以下是剩余的详细信息,可以节省我几个小时的时间 - 希望这对其他人有帮助。

1)正如我之前预期和提到的,dev_appserver.py 需要使用 --host=0.0.0.0 运行,以便它可以侦听本地网络。

2) 为了正确解析 ID 令牌以使用户身份验证工作,您需要安装 PyCrypto 库 - 默认情况下未安装它,因此仅将其放在 app.yaml 中是不够的。我找到了 Windows 的二进制文件here http://www.voidspace.org.uk/python/modules.shtml#pycrypto.

3)然后,在生成的 Tictactoe.java 等效类中,我必须将 DEFAULT_ROOT_URL 更改为http://<my-local-machine>:8080/_ah/api/(这是我的本地计算机正在运行的地方),以便请求发送到本地网络。或者(也许侵入性较小),您可以在初始化构建器的任何位置使用 builder.setRootUrl 到相同的地址。这样你就不会弄乱生成的类。

4)我还必须做出丹提到的描述的改变here https://stackoverflow.com/questions/15393363/how-to-disable-gzipcontent-in-cloud-endpoints-builder-in-android.

完成这四件事后,现在一切似乎都正常,我可以在本地测试我的应用程序 - 万岁!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Cloud Endpoints for Google App Engine 对 Android 应用程序进行本地测试 的相关文章

随机推荐