package foundation.icall.callout;
|
|
import java.io.IOException;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
|
import okhttp3.OkHttpClient;
|
import okhttp3.Request;
|
import okhttp3.Response;
|
|
public class OkHttpProvider {
|
|
protected static Logger logger;
|
private static OkHttpClient httpClient = null;
|
|
static {
|
logger = LogManager.getLogger(OkHttpProvider.class);
|
}
|
|
public Response post(ICallRequest remoteRequest) throws IOException {
|
Request.Builder builder = new Request.Builder();
|
|
//1. 将 URL 设置到请求中
|
String params = remoteRequest.paramsToURL();
|
builder.url(remoteRequest.getURL() + params);
|
|
//2. 将 headers 设置到请求中
|
if (remoteRequest.existsHeaders()) {
|
remoteRequest.applyHeaders(builder);
|
}
|
|
//3. 将 JSON Body 设置到请求中
|
if (remoteRequest.existsJSONBody()) {
|
remoteRequest.applyJSONBody(builder);
|
}
|
|
//4. 将 Form Body 设置到请求中
|
if (remoteRequest.existsFormBody()) {
|
remoteRequest.applyFormBody(builder);
|
}
|
|
//4. 发送请求
|
Request request = builder.build();
|
Response response = httpClient.newCall(request).execute();
|
|
//5. 返回
|
return response;
|
}
|
|
public Response get(ICallRequest remoteRequest) throws IOException {
|
Request.Builder builder = new Request.Builder().get();
|
|
//1. 将 URL 设置到请求中
|
String params = remoteRequest.paramsToURL();
|
builder.url(remoteRequest.getURL() + params);
|
|
//2. 将 headers 设置到请求中
|
if (remoteRequest.existsHeaders()) {
|
remoteRequest.applyHeaders(builder);
|
}
|
|
//3. 发送请求
|
Request request = builder.build();
|
Response response = httpClient.newCall(request).execute();
|
|
//4. 返回
|
return response;
|
}
|
}
|