java连接https,连接重置为https连接

代码

import javax.net.ssl.HostnameVerifier;

import javax.net.ssl.HttpsURLConnection;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSession;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;

import javax.servlet.http.HttpServletRequest;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.rmi.RemoteException;

public static HttpsURLConnection httpsCon(String httpsURL, String query){

try{

TrustManager[] trustAllCerts = new TrustManager[]{

new X509TrustManager() {

public java.security.cert.X509Certificate[] getAcceptedIssuers() {

return null;

}

public void checkClientTrusted(

java.security.cert.X509Certificate[] certs, String authType) {

}

public void checkServerTrusted(

java.security.cert.X509Certificate[] certs, String authType) {

}

}

};

// Install the all-trusting trust manager

SSLContext sc = SSLContext.getInstance("SSL");

sc.init(null, trustAllCerts, new java.security.SecureRandom());

HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

// Create all-trusting host name verifier

HostnameVerifier allHostsValid = new HostnameVerifier() {

public boolean verify(String hostname, SSLSession session) {

return true;

}

};

// Install the all-trusting host verifier

HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);

URL myurl = new URL(httpsURL);

HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();

con.setRequestMethod("POST");

con.setRequestProperty("Content-length", String.valueOf(query.length()));

con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

con.setDoOutput(true);

con.setDoInput(true);

return con;

}catch(Exception ce){

log.info("IndoUtil.httpscon()"+IndoUtil.getFullLog(ce));

}

return null;

}

当我将https网址传递给该方法时,我收到以下异常,我无法找到问题,有人请指出

导致异常的实际行是 con.getOutputStream()

HttpsURLConnection con = IndoUtil.httpsCon(httpsURL, query);

DataOutputStream output = new DataOutputStream(con.getOutputStream());

at java.net.SocketInputStream.read(SocketInputStream.java:196)at java.net.SocketInputStream.read(SocketInputStream.java:122)at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)at sun .security.ssl.InputRecord.read(InputRecord.java:480)at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:946)at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1344)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)在sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)在sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient . 的java:559)在sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)在sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1093)在sun.net .protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)at com.ibm.indo.serviceImpl.GenericServiceImpl.checkDompetku注册(GenericServiceImpl.java:2042)在com.ibm.indo.controller.IndoServiceController.customerProfile(IndoServiceController.java:140)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl . 的java:57)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(Method.java:606)在org.springframework.web.method.support.InvocableHandlerMethod.doInvoke (InvocableHandlerMethod.java:221)org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java) :110)在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:776)在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHand lerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705)org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java: 959)在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967)在org.springframework.web.servlet.FrameworkServlet .doPost(FrameworkServlet.java:869)位于javax.servlet的org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)的javax.servlet.http.HttpServlet.service(HttpServlet.java:754) . http.HttpServlet.service(HttpServlet.java:847)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)在com.ibm.indo.util.SessionFilter.doFilter (SessionFilter.java:62)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)在org.apache . catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)在org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve . java:153)org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.apache.catalina.core .StandardEngineValve.invoke(StandardEngineValve.java:109)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java :671)atg.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:930)at java.lang.Thread.run(Thread.java:745)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值