OkHttpClient:(okhttp3.OkHttpClient包下的 使用的时候需要添加这个包)
public class Util {
public static void getBytesByOkhttp(String path,CallBack callBack){
new Thread(new Runnable() {
public void run() {
// 1
OkHttpClient client = new OkHttpClient();
// 2
Request request = new Request.Builder().url(path).build();
// 3
try {
Response response = client.newCall(request).execute();
// 4
if(response.isSuccessful()){
byte[] bs = response.body().bytes();
callBack.callback(bs);
//return bs;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
}
2.HttpClient:( org.apache.http包下的,使用的时候也需要添加该包)
public class HttpUtils {
public static byte[] getByteFromUrl(String path) {
HttpClient client=new DefaultHttpClient();
HttpGet request=new HttpGet(path);
try {
HttpResponse response = client.execute(request);
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity = response.getEntity();
return EntityUtils.toByteArray(entity);
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
HttpURLConnection:(java.net包下的,不需要添加依赖,直接就可以使用)这个涉及到读写流,略显繁琐..
public class Httputils {
public static String getByteFromUrl(String path) {
InputStream is=null;
ByteArrayOutputStream baos=null;
try {
URL url=new URL(path);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
if(connection.getResponseCode()==200){
is=connection.getInputStream();
baos=new ByteArrayOutputStream();
int len=0;
byte [] by=new byte[1024*8];
while((len=is.read(by))!=-1){
baos.write(by,0,len);
return baos.toString();
}
}