常用的几种网络请求OkHttpClient , HttpClient和 HttpURLConnection

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();
                 }
             }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值