下面是我在下面的代码中所面对的情况:

就像你看到的,我正在尝试读取一个HTTP流。 如果你使用的是 Galaxy laptop,我将在Galaxy运行以下代码,当我尝试使用Galaxy浏览器( 在wifi和 3 g 中) 连接到URL时,它会运行 100%时间 works 。 但是,当我在 Wi-Fi 上使用我的Galaxy S3连接时,超时时间为2. 如果删除超时属性,会得到奇怪的异常,如:"recvfrom failed: ETIMEDOUT"

"failed to connect to : connect failed: ENETUNREACH (Network is unreachable)"

"unable to resolve the host : no address associated with hostname"

我对任何建议都是开放的。public static final String getHttpResponse(String url)

{

HttpURLConnection conn = null;

InputStream response = null;

try {

URL address = new URL(url);

conn = (HttpURLConnection)address.openConnection();

conn.setConnectTimeout(30 * 1000);//30 seconds

conn.setReadTimeout(30 * 1000);//30 seconds

response = conn.getInputStream();

if(conn.getResponseCode()!= HttpURLConnection.HTTP_OK) {

Log.e("Util.getHttpResponse", Integer.toString(conn.getResponseCode()));

return null;

}

String result = Util.streamToString(response);

return result;

} catch(IOException e) {

response = conn.getErrorStream();

Log.e("Util.getHttpResponse", Util.streamToString(response));

return null;

} finally {

if( response!= null ) {

try {

response.close();

} catch (IOException e) {

//TODO Auto-generated catch block

e.printStackTrace();

}

}

if(conn!= null) {

conn.disconnect();

}

}

}

更新:- 使用AndroidHttpClient无效- 在获取输入流之后,Eclipse ide中出现了一个错误弹出框。 你可以看到我的调试游标一直到第 107行。 当我这次得到输入流的时候。

8934e6b07ee5e1cbbd20869139486fd8.png

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐