1. 程式人生 > >使用okhttp3的get和post請求的工具類

使用okhttp3的get和post請求的工具類

import okhttp3.*;
import org.apache.ibatis.annotations.Param;

import java.io.IOException;
import java.util.Map;

/**
 * 用於http請求的工具類
 * 使用okhttp3
 */
public class HttpUtil {
    /**
     * 給定特定的url,引數封裝成一個map,get請求
     * @param url
     * @param params
     * @return 響應字串
     */
    private static
OkHttpClient client = new OkHttpClient(); public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); public static String getResponseWithParams(String url, Map<String,String> params) { HttpUrl httpUrl = HttpUrl.parse(url); HttpUrl.Builder builder =
httpUrl.newBuilder(); if(params!=null){ for(String key:params.keySet()){ builder.addQueryParameter(key,params.get(key)); } } Request request = new Request.Builder() .url(builder.build()) .build(); try
{ String res = client.newCall(request).execute().body().string(); return res; } catch (IOException e) { e.printStackTrace(); } return null; /* 非同步處理 */ // client.newCall(request).enqueue(new Callback() { // @Override // public void onFailure(Call call, IOException e) { // // } // // @Override // public void onResponse(Call call, Response response) throws IOException { // // } // }); } /** * 向url傳送get請求 * @param url * @return 返回的字串 */ public static String getResponse(String url){ Request request = new Request.Builder() .url(url) .build(); try { String res = client.newCall(request).execute().body().string(); return res; } catch (IOException e) { e.printStackTrace(); } return null; } /** * post請求 引數是map格式 * @param url * @param params * @return */ public static String postResponseWithParamsInMap(String url,Map<String,String> params){ FormBody.Builder builder = new FormBody.Builder(); if(params!=null){ for(String key:params.keySet()){ builder.add(key,params.get(key)); } } RequestBody body = builder.build(); Request request = new Request.Builder().url(url).post(body).build(); try { String res = client.newCall(request).execute().body().string(); return res; } catch (IOException e) { e.printStackTrace(); } return null; } /** * 引數是json 格式 * @param url * @param json * @return */ public static String postResponseWithParamsInJson(String url,String json){ RequestBody body = RequestBody.create(JSON,json); Request request = new Request.Builder().url(url).post(body).build(); try { String res = client.newCall(request).execute().body().string(); return res; } catch (IOException e) { e.printStackTrace(); } return null; } }

以後還需要什麼功能可以繼續完善,也希望大佬留言我可以補充進來!


end