问题描述:做一个文件下载例子。碰到问题 HttpURLConnection getResponseCode获得的值为-1public InputStream getInputStreamFromURL(String urlStr) throws IOException{
URL url = new URL(urlStr);
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
//设置连接超时:
urlConn.setConnectTimeout(6*10000);
//返回的响应码200,是成功.
if (urlConn.getResponseCode() != 200)
{
throw new RuntimeException("请求url失败");
} return urlConn.getInputStream();
}
debug进去后发现urlConn.getResponseCode() 这个值为-1,
传入的urlstr:当为内网的地址时返回值正常,但是当urlstr为外网的值的时候就会返回-1,配置文件里面也添加了上网的权限,模拟器可以上外网,弱弱的问下:urlstr的值如果是(比如说:http://www.baidu.com)这个,那么获得的getResponseCode值会是 200吗?新手求教,先谢过
URL url = new URL(urlStr);
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
//设置连接超时:
urlConn.setConnectTimeout(6*10000);
//返回的响应码200,是成功.
if (urlConn.getResponseCode() != 200)
{
throw new RuntimeException("请求url失败");
} return urlConn.getInputStream();
}
debug进去后发现urlConn.getResponseCode() 这个值为-1,
传入的urlstr:当为内网的地址时返回值正常,但是当urlstr为外网的值的时候就会返回-1,配置文件里面也添加了上网的权限,模拟器可以上外网,弱弱的问下:urlstr的值如果是(比如说:http://www.baidu.com)这个,那么获得的getResponseCode值会是 200吗?新手求教,先谢过
.openConnection();
conn.setDoInput(true);
conn.connect();
这是我找的一个范例代码,貌似你少了conn.setDoInput(true);
我也是怀疑是这个问题,正如我提问时说的,如果uri写成http://www.baidu.com,getResponseCode值会不会是200?是不是可以这样写?