您好,我想通过HttpsURLConnection访问一个IP地址,出现错误:java.io.IOException: HTTPS hostname wrong: should be <192.168.0.100>,但是访问域名的地址却不会有错,请问HttpsURLConnection是不是不能访问IP地址。
我已添加了IP地址服务器的的证书链,而且此证书链IP即为192.168.0.100,同时主题备用名称也为192.168.0.100,先谢谢各位大哥了,谢谢!
我已添加了IP地址服务器的的证书链,而且此证书链IP即为192.168.0.100,同时主题备用名称也为192.168.0.100,先谢谢各位大哥了,谢谢!
解决方案 »
- Tongweb与cxf整合问题
- 文件上传如何设置允许上传格式
- 用Jsp做用户注册页面的时候,用个表单就行了,现在的问题是用户注册用户名是想在旁边加个验证效果,这样的话怎样将该同行输入的值传递给要处理的页面能?
- 这是一个什么错误?应怎样更改?
- 关于JSP中配置Tomcat服务器后输入http://localhost:8080出现Oracle界面的难题,急,急!~!~!~!
- fck toolbarsets 问题
- 怎样在js里取得本页面form里面控件的值
- ★★★★★重金悬赏 session监听问题☆☆☆☆☆
- struts2源码疑问
- 有没有什么包可以提供文字生成图片的方法?急需
- struts2传值textarea标签对应值中换行符被替换成@_@,哪位大侠知道怎么回事?
- 分页中的SQL语句问题
URL url=new URL("https://localhost:8443/sso/servlet/SyncServlet?method=deleteOrg&appid=ec28d8fd22cf4bdf0122cf53e8a10002&orgcoding=001311&memo=");
HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
conn.setHostnameVerifier(new Servlet_test().new TrustAnyHostnameVerifier());
conn.connect();
InputStream ip= conn.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(ip));
String line;
StringBuffer strb = new StringBuffer();
while ((line = br.readLine()) != null) {
strb.append(line);
}
String ss = strb.toString();
System.out.println(ss);
} public class TrustAnyHostnameVerifier implements HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
// 直接返回true
return true;
}
}
}如果你为服务器证书经常改变,而自己的客户端方也跟随改变而头痛的话,以上方法也适合。
-----------------------------------------------------------------------
把IP地址放到<>中试试
一般表现形式是这样的:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: HTTPS hostname wrong: should be <localhost>
......
root cause
java.io.IOException: HTTPS hostname wrong: should be <localhost>
......看到这个问题就能猜到是证书问题。但无论如何也猜不到证书到底有什么毛病。事实上,令人难以置信的是错误就出在创建证书的第一个问题--你的姓名。其实这个“姓名”应该是域名。比如说localhost或是blog.devep.net之类的。输成了姓名,和真正运行的时候域名不符,当然会出错。浏览器无所谓,弹出一个对话框,用户按一下就行了。但http client就直接抛出了上面那个错误。
HostnameVerifier hv = new HostnameVerifier()
{
public boolean verify(String urlHostName, SSLSession session)
{
System.out.println("Warning: URL Host: " + urlHostName + " vs. "
+ session.getPeerHost());
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
同时可以通过路径校验,您还有别的方法吗,您的意思是只能绕路是吗?谢谢