问题描述:做一个文件下载例子。碰到问题 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吗?新手求教,先谢过

解决方案 »

  1.   

    HttpURLConnection conn = (HttpURLConnection) myFileUrl
    .openConnection();
    conn.setDoInput(true);
    conn.connect();
    这是我找的一个范例代码,貌似你少了conn.setDoInput(true);
      

  2.   

    会不会是你URI问题啊,,比如tomcat没有打开啊,,地址错误啊什么的
      

  3.   

    我不是用的tomcat做服务器,我是直接上的外网下载东西就好比搜狐上有个图片的链接,就直接用哪个地址,http://www.sohu.com/***/a.jpg
    我也是怀疑是这个问题,正如我提问时说的,如果uri写成http://www.baidu.com,getResponseCode值会不会是200?是不是可以这样写?