【发布时间】:2014-01-29 21:22:47
【问题描述】:
我有一个基于 GWT Java 的 AppEngine 项目,该项目使用 blobstore 存储 mp3 文件。 为了流式传输 blob,我通常通过传递类似的东西来调用我的服务 HttpServlet “/myApp/serve?blob-key=AMIfv...” 到 GWT 音频小部件。 开发服务器或已部署的代码相同。
现在我正在尝试使用 MediaPlayer 的 android 客户端,但我遇到了传递给 MediaPlayer.setDataSource() 的 URL 的问题。
对于已部署的服务器,此 URL 可以正常工作:http://example.appspot.com/myApp/serve?blob-key=AMIfv...
但我无法让开发模式工作。据我所知,服务器在http://localhost:8888/ 运行,所以我通过了:http://localhost:8888/myApp/serve?blob-key=AMIfv...
但 servlet 永远无法到达(我尝试了许多变体)。
是否有更好的方法来实现和定义不断变化的后端?类似于 Endpoints Support 向 Android 客户端提供的数据存储对象? https://developers.google.com/eclipse/docs/endpoints-android 在这里,如果我们将 LOCAL_ANDROID_RUN 设置为 true(在 CloudEndpointUtils.java 中),Android 应用程序将连接到本地开发服务器。如果 LOCAL_ANDROID_RUN 为 false,则客户端库会根据应用程序 ID 提供正确的 URL。
【问题讨论】:
-
我发现了这个问题,它在 CloudEndpointUtils.java 中的一些 cmets 中得到了解释:我使用的是 Android 模拟器,所以在 Android 的虚拟路由器 10.0.2.2:8888 后面运行,所以解决方案是将 localhost 替换为 10.0.2.2
标签: java android google-app-engine url blobstore