java
复制代码
import cn.hutool.json.JSONUtil;
import okhttp3.*;
import java.io.IOException;
import java.util.Map;
/**
* @ClassName OkHttpUtils
* @description: http客户端远程调用通用工具类
* @author: chenlf
* @Version 1.0
**/
public class OkHttpUtils {
private static OkHttpClient client = new OkHttpClient();
public static String execute(String url, String method, RequestBody requestBody, Map<String, String> headers){
Request.Builder requestBuilder = new Request.Builder()
.url(url)
.method(method, requestBody);
if (headers != null && !headers.isEmpty()) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
requestBuilder.addHeader(entry.getKey(), entry.getValue());
}
}
try (Response response = client.newCall(requestBuilder.build()).execute()) {
if (!response.isSuccessful())
throw new IOException("远程调用接口失败:" + response);
return response.body().string();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static String doGet(String url){
return execute(url, "GET", null, null);
}
public static String doGet(String url, Map<String, String> headers){
return execute(url, "GET", null, headers);
}
public static String doPost(String url, String jsonBody){
RequestBody body = RequestBody.create(MediaType.parse("application/json"), JSONUtil.toJsonStr(jsonBody));
return execute(url, "POST", body, null);
}
public static String doPost(String url, RequestBody body){
return execute(url, "POST", body, null);
}
public static String doPost(String url, String jsonBody, Map<String, String> headers){
RequestBody body = RequestBody.create(MediaType.parse("application/json"), JSONUtil.toJsonStr(jsonBody));
return execute(url, "POST", body, headers);
}
public static String doPost(String url, RequestBody body, Map<String, String> headers){
return execute(url, "POST", body, headers);
}
}