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); }
}