读取网络图片,但是每次都是在执行.getResponseCode()方法的时候抛出异常,快要崩溃了,到底是怎么回事,代码如下:
package com.qxj.lixinxing.service;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import com.qxj.lixinxing.utils.StreamTool;
import android.net.Uri;
import android.util.Log;
public class ImageService {
public static byte[] getImage(String path) throws Exception {
URL url = new URL(path); //得到资源地址
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //得到连接
connection.disconnect();
connection.setConnectTimeout(5000); //如果5000毫秒内未连接到就超时
connection.setRequestMethod("GET"); //以“get”方式发出请求
//每次执行到下面判断语句的时候就会抛出异常,是怎么回事?
if(connection.getResponseCode() == 200) { //如果数据存在,执行下一步
InputStream inStream = connection.getInputStream(); //得到网络返回的输入流
return StreamTool.read(inStream); //将输入流转换为二进制数据
}
return null;
}
}
------解决方案--------------------
把异常也发出来啊
------解决方案--------------------
很明显了 把网络操作放在线程中操作,这个错误很明显的告诉你 你把网络操作放在了主线程 这是不允许的!你需要另起线程进行网络操作
new thread(){
public void run(){
写上你的那些代码试试!
}
}.start()
------解决方案--------------------
connection.disconnect();
你这是要干嘛,断开连接?
------解决方案--------------------
是的额,为什么要断开呢