<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.3.1</version>
</dependency>
package com.sitech.crmbcc.utile;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import org.springframework.http.HttpStatus;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import static com.alibaba.fastjson.JSONObject.*;
/**
* @oauth: qiangSW
* @date: 2020/4/6 20:04
* @description: com.sitech.crmbcc.utile
* @doc:
*/
@Slf4j
public class HttpClientUtil<T> {
/**
* @param requestParam
* @param requestUrl
* @param clasz
* @param <T>
* @return 响应码 != 200 返回 null
* @throws Exception
*/
public static <T> T okHttpPost(String requestParam, String requestUrl, Headers headers, Class<T> clasz) throws Exception {
if (StringUtils.isEmpty(requestUrl)) {
return null;
}
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), requestParam);
OkHttpClient okHttpClient = new OkHttpClient();
URL url = new URL(requestUrl);
Request.Builder post = new Request.Builder().url(url)
.post(requestBody);
if (null != headers) {
post.headers(headers);
}
Request request = post.build();
Response execute = okHttpClient.newCall(request).execute();
if (HttpStatus.OK.value() == execute.code()) {
ResponseBody body = execute.body();
String result = body.string();
return JSONObject.parseObject(result, clasz);
}
return null;
}
/**
*
* @param requestParam
* @param requestUrl
* @param headers
* @return Response
* @throws Exception
*/
public static Response okHttpPost(String requestParam, String requestUrl, Headers headers) throws Exception {
if (StringUtils.isEmpty(requestUrl)) {
log.error("{}请求url为空", requestParam);
return null;
}
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), requestParam);
OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
.build();
URL url = new URL(requestUrl);
Request.Builder post = new Request.Builder().url(url)
.post(requestBody);
if (null != headers) {
post.headers(headers);
}
Request request = post.build();
return okHttpClient.newCall(request).execute();
}
}
本文介绍了一个使用OkHttp库实现的网络请求工具类,该工具类提供了POST请求的方法,支持JSON请求体,并能处理响应,返回指定类型的对象。同时,文章包含了错误处理和日志记录,适用于Java项目的网络交互。
888

被折叠的 条评论
为什么被折叠?



