我直接下载最新版的httpclient,直接复制的示例中的代码,只是把网址换成我自己想要的网址.并且,在我电脑中,在办公室服务器里测试都通过,但上传上机房服务器里面就出错了.
java代码
[code="java"]
public void login()
{
try
{
//初始化 httpclient
DefaultHttpClient httpclient = new DefaultHttpClient();
//设置证书
httpclient.getConnectionManager().getSchemeRegistry().register(sch);
String url = "login.jsp";
HttpPost httpost = new HttpPost(url);
print("准备登陆网站,网址:"+url);
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("actionName", "login"));
nvps.add(new BasicNameValuePair("login_password", "11"));
nvps.add(new BasicNameValuePair("login_user", "111"));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
HttpResponse response = httpclient.execute(httpost);
String statusLine = response.getStatusLine().toString();
print("得到网页打开状态"+statusLine);
if(statusLine.equals("HTTP/1.1 200 OK"))
{
}
}
}
/*
* 设置SSL证书
*/
public void setSSL()
{
try
{
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
String p = System.getProperty("user.dir")+"/my.key";
print(p);
FileInputStream instream = new FileInputStream(new File(p));
try {
trustStore.load(instream, "123456".toCharArray());
}catch(Exception e)
{
e.printStackTrace();
}
finally {
instream.close();
}
SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
sch = new Scheme("https", socketFactory, 443);
}
catch(Exception e)
{
e.printStackTrace();
}
}
[/code]
程序出错提示
[code="java"]
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:371)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:399)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:143)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
at login(login.java:89)
[/code]