Android Wear是否支持HttpURLConnection - 获取EOFException

时间:2014-07-12 21:35:27

标签: android wear-os

我想知道我们是否可以通过 Android Wear 中的 HttpURLConnection 访问网络?

我尝试在Wear代码中使用HttpURLConnection,我得到 EOFException 。相同的代码适用于普通的Android手机。它只在Android Wear上有问题。

如果Wear上不支持HttpURLConnection,我们应该使用Apache Http客户端吗?

或许我推出应用程序进行开发的方式不正确?

        URL url = new URL(myurl);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setReadTimeout(10000 /* milliseconds */);
        conn.setConnectTimeout(15000 /* milliseconds */);
        conn.setRequestMethod("GET");
        conn.setDoInput(true);
        // Starts the query
        conn.connect(); 
        int response = conn.getResponseCode(); 

我确实在android清单中添加了权限。我还从AsyncTask运行上面的代码。

EOFException发生在 conn.getResponseCode()

java.io.EOFException
        at com.android.okhttp.internal.Util.readAsciiLine(Util.java:342)
        at com.android.okhttp.internal.http.RawHeaders.fromBytes(RawHeaders.java:311)
        at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:135)
        at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:644)
        at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:353)
        at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:297)
        at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:509)

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:10)

不幸的是,没有。

Android Wear应用程序无法直接访问Internet。他们必须与相应的掌上电脑应用程序通信(通过MessageApiDataApi)并请求它执行您需要的任何HTTP请求。


编辑: Android Wear 2.0,目前处于测试阶段,supports network requests,因此HttpURLConnection应该在那里工作。