封装的Http请求(HttpURLConnection和okHttp)


public class HttpUtil {

    // 不管是HttpURLConnection,还是okhttp返回的数据都是在子线程中,都不能直接进行更新UI操作,否则会报错.

    /**get方法
     * HttpCallbackListner 自定义接口
     *
      public interface HttpCallbackListner {

     void onFinish(String response);
     void onError(Exception e);

     }
     */

    public static void sendHttpRequest(final String address,final 
  HttpCallbackListner listner){
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpURLConnection httpURLConnection = null;

                try {
                    URL url = new URL(address);
                    httpURLConnection = (HttpURLConnection) url.openConnection();
                    httpURLConnection.setRequestMethod("GET");
                    httpURLConnection.setConnectTimeout(8000);
                    httpURLConnection.setReadTimeout(8000);
                    httpURLConnection.setDoInput(true);
                    httpURLConnection.setDoOutput(true);

                    InputStream inputStream = httpURLConnection.getInputStream();
                    // 获取到的输入流进行读取
                    BufferedReader  reader = new BufferedReader(new 
     InputStreamReader(inputStream));
                    StringBuilder reponse = new StringBuilder();
                    String line;
                    while ((line =reader.readLine())!=null){
                        reponse.append(line);
                    }

                    if (listner!=null){
                        listner.onFinish(reponse.toString());
                    }

                } catch (Exception e) {
                   if (listner!=null){
                       listner.onError(e);
                   }
                }finally {
                    if (httpURLConnection!=null){
                        httpURLConnection.disconnect();
                    }
                }

            }
        }).start();


    }

//Callback: OKhttp自带的回调接口
    public static void sendOkhttpRequest(String address, Callback callback){
        OkHttpClient okHttpClient = new OkHttpClient();
        Request request = new Request.Builder()
                .url(address)
                .build();
        okHttpClient.newCall(request).enqueue(callback);

    }

  // post请求: Okhttp
 // 获得支付成功订单信息
 public static void paySucceedOrder(Context context,String order_num,String url,StringCallback stringCallback){
    PaySucceedOrderReq paySucOrdReq = new PaySucceedOrderReq();
    paySucOrdReq.setOrder_num(order_num);
    String json = new Gson().toJson(paySucOrdReq);
    OkHttpUtils.postString().url(url).content(json).mediaType(MediaType.parse("application/json; charset=utf-8")).build().execute(stringCallback);
}


 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值