首页 httpclientorgapachehttpnohttpresponseexceptionhost端口failedtorespond错误原因和解决方法

httpclientorgapachehttpnohttpresponseexceptionhost端口failedtorespond错误原因和解决方法

举报
开通vip

httpclientorgapachehttpnohttpresponseexceptionhost端口failedtorespond错误原因和解决方法httpclientorg.apache.HYPERLINK"http://http.NoHttpResponseException"http.NoHttpResponseExceptionhost端口failedtorespond错误原因和解决方法importcom.google.api.client.HYPERLINK"http://http.ByteArrayContent"http.ByteArrayContent;importcom.google.api.client.HYPERLINK"h...

httpclientorgapachehttpnohttpresponseexceptionhost端口failedtorespond错误原因和解决方法
httpclientorg.apache.HYPERLINK"http://http.NoHttpResponseException"http.NoHttpResponseExceptionhost端口failedtorespond错误原因和解决方法importcom.google.api.client.HYPERLINK"http://http.ByteArrayContent"http.ByteArrayContent;importcom.google.api.client.HYPERLINK"http://http.GenericUrl"http.GenericUrl;importcom.google.api.client.HYPERLINK"http://http.HttpBackOffUnsuccessfulRespo"http.HttpBackOffUnsuccessfulResponseHandler;importcom.google.api.client.HYPERLINK"http://http.HttpContent"http.HttpContent;importcom.google.api.client.HYPERLINK"http://http.HttpHeaders"http.HttpHeaders;importcom.google.api.client.HYPERLINK"http://http.HttpRequest"http.HttpRequest;importcom.google.api.client.HYPERLINK"http://http.HttpRequestFactory"http.HttpRequestFactory;importcom.google.api.client.HYPERLINK"http://http.HttpResponse"http.HttpResponse;importcom.google.api.client.HYPERLINK"http://http.HttpStatusCodes"http.HttpStatusCodes;importcom.google.api.client.HYPERLINK"http://http.HttpTransport"http.HttpTransport;importcom.google.api.client.HYPERLINK"http://http.apache.ApacheHttpTransport"http.apache.ApacheHttpTransport;importcom.google.api.client.util.BackOff;importjava.io.IOException;importjava.io.InputStream;importjava.net.ProxySelector;importjava.util.Map;importjava.util.Timer;importjava.util.TimerTask;importjava.util.concurrent.TimeUnit;importjavax.annotation.PreDestroy;importlombok.Data;importlombok.extern.slf4j.Slf4j;importorg.apache.HYPERLINK"http://http.HeaderElement"http.HeaderElement;importorg.apache.HYPERLINK"http://http.HeaderElementIterator"http.HeaderElementIterator;importorg.apache.HYPERLINK"http://http.HttpHost"http.HttpHost;importorg.apache.HYPERLINK"http://http.conn.ClientConnectionManager"http.conn.ClientConnectionManager;importorg.apache.HYPERLINK"http://http.conn.ConnectionKeepAliveStrategy"http.conn.ConnectionKeepAliveStrategy;importorg.apache.HYPERLINK"http://http.conn.params.ConnManagerParams"http.conn.params.ConnManagerParams;importorg.apache.HYPERLINK"http://http.conn.params.ConnPerRouteBean"http.conn.params.ConnPerRouteBean;importorg.apache.HYPERLINK"http://http.conn.scheme.PlainSocketFactory"http.conn.scheme.PlainSocketFactory;importorg.apache.HYPERLINK"http://http.conn.scheme.Scheme"http.conn.scheme.Scheme;importorg.apache.HYPERLINK"http://http.conn.scheme.SchemeRegistry"http.conn.scheme.SchemeRegistry;importorg.apache.HYPERLINK"http://http.conn.ssl.SSLSocketFactory"http.conn.ssl.SSLSocketFactory;importorg.apache.HYPERLINK"http://http.impl.client.DefaultHttpClient"http.impl.client.DefaultHttpClient;importorg.apache.HYPERLINK"http://http.impl.client.DefaultHttpRequestRetryHandl"http.impl.client.DefaultHttpRequestRetryHandler;importorg.apache.HYPERLINK"http://http.impl.conn.ProxySelectorRoutePlanner"http.impl.conn.ProxySelectorRoutePlanner;importorg.apache.HYPERLINK"http://http.impl.conn.tsccm.ThreadSafeClientConnM"http.impl.conn.tsccm.ThreadSafeClientConnManager;importorg.apache.HYPERLINK"http://http.message.BasicHeaderElementIterator"http.message.BasicHeaderElementIterator;importorg.apache.HYPERLINK"http://http.params.BasicHttpParams"http.params.BasicHttpParams;importorg.apache.HYPERLINK"http://http.params.HttpConnectionParams"http.params.HttpConnectionParams;importorg.apache.HYPERLINK"http://http.params.HttpParams"http.params.HttpParams;importorg.apache.HYPERLINK"http://http.protocol.HTTP"http.protocol.HTTP;importorg.apache.HYPERLINK"http://http.protocol.HttpContext"http.protocol.HttpContext;/***@authorLiSheng*/@Slf4jpublicclassHttpClientUtils{privatestaticHttpRequestFactoryrequestFactory;privatestaticHttpTransporthttpTransport;privatestaticfinalStringCONTENT_TYPE_JSON="application/json";privatestaticfinalintCACHE_SIZE=4096;static{HttpParamsparams=newBasicHttpParams();HttpConnectionParams.setStaleCheckingEnabled(params,false);HttpConnectionParams.setSocketBufferSize(params,245760);//8k(8192)*30ConnManagerParams.setMaxTotalConnections(params,400);ConnManagerParams.setMaxConnectionsPerRoute(params,newConnPerRouteBean(200));SchemeRegistryregistry=newSchemeRegistry();registry.register(newScheme("http",PlainSocketFactory.getSocketFactory(),80));registry.register(newScheme("https",SSLSocketFactory.getSocketFactory(),443));ClientConnectionManagerconnectionManager=newThreadSafeClientConnManager(params,registry);DefaultHttpClientdefaultHttpClient=newDefaultHttpClient(connectionManager,params);defaultHttpClient.setHttpRequestRetryHandler(newDefaultHttpRequestRetryHandler(0,false));defaultHttpClient.setRoutePlanner(newProxySelectorRoutePlanner(registry,ProxySelector.getDefault()));ConnectionKeepAliveStrategyconnectionKeepAliveStrategy=newConnectionKeepAliveStrategy(){@OverridepubliclonggetKeepAliveDuration(org.apache.HYPERLINK"http://http.HttpResponse"http.HttpResponsehttpResponse,HttpContexthttpContext){return20*1000;//20seconds,becausetomcatdefaultkeep-alivetimeoutis20s}};defaultHttpClient.setKeepAliveStrategy(connectionKeepAliveStrategy);httpTransport=newApacheHttpTransport(defaultHttpClient);requestFactory=httpTransport.createRequestFactory();}@DatapublicstaticclassPostParam{privateIntegerconnectTimeoutMills;//可选,默认{20sprivateIntegerreadTimeoutMills;//可选,默认20sprivateMapheaders;//可选privateStringurl;//必填privateStringpostJson;//必填privateBooleanreadResponseData;//必填:是否需要读取数据。如果不需要返回结果,设置falseprivateBackOffbackOff;//可选,重试机制策略privateStringauthorization;//可选publicPostParam(Stringurl,StringpostJson,booleanreadResponseData){this.url=url;this.postJson=postJson;this.readResponseData=readResponseData;}}publicstaticStringpostWithJson(PostParampostParam)GenericUrlgenericUrl=newGenericUrl(postParam.getUrl());HttpContenthttpContent=ByteArrayContent.fromString(null,postParam.getPostJson());HttpResponsehttpResponse=null;try{HttpRequesthttpRequest=requestFactory.buildPostRequest(genericUrl,httpContent);if(postParam.getConnectTimeoutMills()!=null){httpRequest.setConnectTimeout(postParam.getConnectTimeoutMills());}if(postParam.getReadTimeoutMills()!=null){httpRequest.setReadTimeout(postParam.getReadTimeoutMills());}if(postParam.getBackOff()!=null){httpRequest.setUnsuccessfulResponseHandler(newHttpBackOffUnsuccessfulResponseHandler(postParam.getBackOff()));}HttpHeadershttpHeaders=newHttpHeaders();httpHeaders.setContentType(CONTENT_TYPE_JSON);Mapheaders=postParam.getHeaders();if(headers!=null&&headers.size()>0){headers.forEach(httpHeaders::set);}if(postParam.getAuthorization()!=null&&!postParam.equals("")){httpHeaders.setAuthorization(postParam.getAuthorization());}httpRequest.setHeaders(httpHeaders);httpResponse=httpRequest.execute();if(httpResponse.getStatusCode()!=}HttpStatusCodes.STATUS_CODE_OK){log.error("httpstatusnot200.param:{},status:{},msg:{}",postParam,httpResponse.getStatusCode(),httpResponse.getStatusMessage());returnnull;}BooleanreadResponseData=postParam.getReadResponseData();if(readResponseData!=null&&readResponseData){InputStreaminputStream=httpResponse.getContent();if(inputStream!=null){StringBufferout=newStringBuffer();byte[]b=newbyte[CACHE_SIZE];for(intn;(n=inputStream.read(b))!=-1;){out.append(newString(b,0,n));}returnout.toString();}}catch(Exceptione){log.error("postexception,param:{}",postParam,e);}finally{try{if(httpResponse!=null){httpResponse.disconnect();}}catch(Exceptione){log.error("httpResponsedisconnectexception",e);}}returnnull;}@PreDestroypublicstaticvoiddestory(){try{log.info("httpTransportshutdownnow");httpTransport.shutdown();}catch(IOExceptione){log.error("shutdownhttpTransportexception",e);
本文档为【httpclientorgapachehttpnohttpresponseexceptionhost端口failedtorespond错误原因和解决方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_597436
暂无简介~
格式:doc
大小:15KB
软件:Word
页数:0
分类:
上传时间:2020-05-18
浏览量:175