在开发中我们经常需要用到http请求,这里介绍一个http请求工具okHttp的用法

导入jar包

<dependency>
	<groupId>com.squareup.okhttp3</groupId>
	<artifactId>okhttp</artifactId>
	<version>3.9.1</version>
</dependency>

为了便于以后使用,这里封装一个OkHttpUtil的工具类

get请求
/**
 * get请求
 * @param url 请求地址
 * @return 请求结果
 */
public String doGet(String url) {
    OkHttpClient okHttpClient = new OkHttpClient();
    Request request = new Request.Builder().url(url).build();
    Call call = okHttpClient.newCall(request);
    try {
        Response response = call.execute();
        return response.body().string();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}
post请求分为两种,From表单形式和JSON参数形式
  • Form表单形式
/**
 * 表单形式post请求
 * @param url 请求地址
 * @param map post请求参数
 * @return 请求结果
 */
public String doPost(String url,Map<String,String> map){
    OkHttpClient client = new OkHttpClient();
    //构建一个formBody builder
    FormBody.Builder builder = new FormBody.Builder();
    //循环form表单,将表单内容添加到form builder中
    for (Map.Entry<String,String> entry : map.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue();
        builder.add(key,value);
    }
    //构建formBody,将其传入Request请求中
    FormBody body = builder.build();
    Request request = new Request.Builder().url(url).post(body).build();
    Call call = client.newCall(request);
    //返回请求结果
    try {
        Response response = call.execute();
        return response.body().string();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}
  • JSON参数形式
/**
 * Json body形式的post请求
 * @param url 请求地址
 * @return 请求结果
 */
public String doPost(String url,String json){
    OkHttpClient client = new OkHttpClient();
    RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json);
    Request request = new Request.Builder()
            .post(body)
            .url(url).
                    build();
    Call call = client.newCall(request);
    //返回请求结果
    try {
        Response response = call.execute();
        return response.body().string();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}