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; } }