【问题标题】:How to get image from AppEngine Server into Android activity如何从 AppEngine 服务器获取图像到 Android 活动
【发布时间】:2012-02-14 03:49:00
【问题描述】:

我正在尝试在开发模式下从 AppEngine 服务器获取图像,使用来自 here 的代码:

HttpGet httpRequest = new HttpGet(URI.create(url) );
HttpClient httpclient = new DefaultHttpClient();
HttpResponse resp = (HttpResponse) httpclient.execute(httpRequest);
HttpEntity entity = resp.getEntity();
BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity);
InputStream instream = bufHttpEntity.getContent();
bmp = BitmapFactory.decodeStream(instream);

执行第 3 行 (httpclient.execute(..)) 时出现错误:

W/System.err(508):org.apache.http.conn.HttpHostConnectException: 与http://0.0.0.0:8888 的连接被拒绝

我相信这个 URL http://0.0.0.0:8888 是正确的,因为在这个 App Engine 连接的 Android 项目中,我能够在项目的浏览器客户端获取具有此地址的图像。 (再次,我处于本地开发模式)

为什么这个连接被拒绝?谢谢。

【问题讨论】:

    标签: android google-app-engine httpclient


    【解决方案1】:

    http://0.0.0.0:8888 肯定是不正确的。您需要使用运行 App 引擎开发服务器的计算机的 IP 地址。如果您在一个类似于 192.168.x.xxx 的本地网络上。在终端中键入ipconfig(Windows 上)或/sbin/ifconfig(Linux 上)以查找您的开发机器的地址。然后使用它从 Android 访问它。

    【讨论】:

    • 如果我将0.0.0.0:8888... 直接放入我的浏览器,它会显示我试图在Android 应用程序中获取的图像。此外,在应用程序的 GWT 客户端上使用相同的地址用于获取图像的相同目的并且它也可以在那里工作,因此该地址至少在某些方面是正确的。不知道为什么它还不能在 Android 端运行。
    • 但是,当我在应用程序的 Android 端使用 192.168.... 时,它实际上能够获取图像。任何想法为什么它适用于 GWT 端而不是 Android 端?
    • 0.0.0.0 不是您可以从另一台机器连接的地址,它类似于127.0.0.1 (localhost, loopback) 地址。这意味着“本地机器上的所有地址”。这就是为什么它可以在您的桌面上运行。但是,如果您想从另一台机器连接,在这种情况下是您的 Android 设备,您需要使用真实的接口地址。使用上面的命令找出你的命令是什么。
    • 是的,谢谢,当我使用真实地址时,它可以在Android模拟器上运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 2014-06-15
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多