当前位置: 首页 >服务端 > java executemethod

java executemethod

通过httpclient向服务器发送https请求,可是连接报错。

// 构造HttpClient的实例

HttpClient httpClient = new HttpClient();

GetMethod getMethod = new GetMethod(ssoInterfactUrl);

// 设置连接超时和读取超时

httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(30000);

httpClient.getHttpConnectionManager().getParams().setSoTimeout(30000);

try {

WmsvrUtils.log("start");

int statusCode = httpClient.executeMethod(getMethod);

WmsvrUtils.log("statusCode" + statusCode);

if (statusCode != HttpStatus.SC_OK) {

WmsvrUtils.log("Method failed:" + getMethod.getStatusLine());

}

byte[] responseBody = getMethod.getResponseBody();

ssoVerifyString = new String(responseBody);

} catch (HttpException e) {

WmsvrUtils.log("[zjgfsso] Please check your provided http address!", e);

} catch (IOException e) {

WmsvrUtils.log("[zjgfsso] network error", e);

} finally {

// 释放连接

getMethod.releaseConnection();

}

按@红薯 的建议增加了超时,报错如下:

18:31:21 INFO [tid:16] [zjgfsso] network error

java.net.SocketTimeoutException: Read timed out

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(Unknown Source)

at com.sun.net.ssl.inteal.ssl.InputRecord.readFully(Unknown Source)

at com.sun.net.ssl.inteal.ssl.InputRecord.read(Unknown Source)

at com.sun.net.ssl.inteal.ssl.SSLSocketImpl.readRecord(Unknown Source)

at com.sun.net.ssl.inteal.ssl.SSLSocketImpl.readDataRecord(Unknown Source)

at com.sun.net.ssl.inteal.ssl.AppInputStream.read(Unknown Source)

at java.io.BufferedInputStream.fill(Unknown Source)

at java.io.BufferedInputStream.read(Unknown Source)

at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)

at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)

at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)

at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)

at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)

at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)

at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)

at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)

at org.apache.jsp.cmcu_005faddon.zjgfLogin_jsp._jspService(zjgfLogin_jsp.java:184)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.catalina.core.ApplicationFilterChain.intealDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.tebie.cmapp.ajxvr.JSPFilter.doFilter(SourceFile:102)

at org.apache.catalina.core.ApplicationFilterChain.intealDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)

at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)

at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)

at java.lang.Thread.run(Unknown Source)

服务器端到底在干什么……

好伤心啊,我们是客户端,通过webservice传递请求,可是试了两种完全不同的实现,都是read time out。问他们服务器的负责人,他们说服务器没有日志…… webservice地址是https的,证书我已经加了。通过浏览器可以打开https连接,telnet 80 和 443端口都是通的。

对网络不了解了……

作者:各自安好吧
来源链接:https://blog.csdn.net/weixin_34254083/article/details/114846039

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/112370.html

标签:HttpClient
分享给朋友:

“java executemethod” 的相关文章