1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package cn.nosum.http.okhttp;
- import cn.nosum.http.AbsRequestHttp;
- import cn.nosum.http.RequestHttp;
- import cn.nosum.http.RequestHttpProperties;
- import cn.nosum.http.enums.HttpType;
- import cn.nosum.http.jodd.JoddSocketHttpConnectionProvider;
- import jodd.http.HttpConnectionProvider;
- import jodd.http.ProxyInfo;
- import okhttp3.Credentials;
- import okhttp3.OkHttpClient;
- import java.util.concurrent.TimeUnit;
- /**
- * OkHttp 请求代理封装.
- *
- * @author Young
- */
- public class OkHttpRequestHttp extends AbsRequestHttp<OkHttpClient, OkHttpProxyInfo> {
- public OkHttpRequestHttp(RequestHttpProperties properties) {
- if (properties.getHttpProxyHost() != null && properties.getHttpProxyPort() > 0) {
- httpProxy = OkHttpProxyInfo.httpProxy(properties.getHttpProxyHost(),
- properties.getHttpProxyPort(),
- properties.getHttpProxyUsername(),
- properties.getHttpProxyPassword());
- }
- OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
- if (httpProxy != null) {
- clientBuilder.proxy(getRequestHttpProxy().getProxy());
- clientBuilder.authenticator((route, response) -> {
- String credential = Credentials.basic(httpProxy.getProxyUsername(), httpProxy.getProxyPassword());
- return response.request().newBuilder().header("Authorization", credential).build();
- });
- }
- clientBuilder.connectTimeout(properties.getConnectTimeout(), TimeUnit.MILLISECONDS).readTimeout(properties.getReadTimeout(), TimeUnit.MILLISECONDS);
- httpClient = clientBuilder.build();
- }
- @Override
- public HttpType getRequestType() {
- return HttpType.JODD_HTTP;
- }
- }
|