2016-10-06 51 views
0

我非常需要您的帮助。 有一个我必须在我的大学做的程序。它必须登录需要HTTP协议的学术系统。 我正在使用HTTP Service Apaches的类,但是显示了错误的输出。尝试访问使用HTTP服务的网站时出错

我安装的是HttpFox,我已经找到了atributes穿上类BasicNameValuePair

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 

public class NavegadorSite { 

    public void x() { 

     final HttpClient client = new DefaultHttpClient(); 
     final HttpPost post = new HttpPost(
       "https://www.sigaa.ufs.br/sigaa/logar.do?dispatch=logOn"); 
     try { 
      final List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 
      nameValuePairs.add(new BasicNameValuePair("width", "1140")); 
      nameValuePairs.add(new BasicNameValuePair("height", "900")); 
      nameValuePairs.add(new BasicNameValuePair("urlRedirect", "")); 
      nameValuePairs.add(new BasicNameValuePair("acao", "")); 
      nameValuePairs.add(new BasicNameValuePair("acessibilidade", "")); 
      nameValuePairs.add(new BasicNameValuePair("user.login", "unknown")); 
      nameValuePairs.add(new BasicNameValuePair("user.senha", "")); 

      post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      final HttpResponse response = client.execute(post); 
      final BufferedReader rd = new BufferedReader(new InputStreamReader(
        response.getEntity().getContent())); 
      String line = ""; 
      while ((line = rd.readLine()) != null) { 
       System.out.println(line); 
      } 
     } catch (final IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    public static void main (String[] args) { 

     NavegadorSite ns = new NavegadorSite(); 
     ns.x(); 
    } 
} 

这是输出:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at sun.security.ssl.Alerts.getSSLException(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source) 
    at sun.security.ssl.Handshaker.fatalSE(Unknown Source) 
    at sun.security.ssl.Handshaker.fatalSE(Unknown Source) 
    at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source) 
    at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source) 
    at sun.security.ssl.Handshaker.processLoop(Unknown Source) 
    at sun.security.ssl.Handshaker.process_record(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) 
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:553) 
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:412) 
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179) 
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328) 
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612) 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447) 
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) 
    at br.ufs.httpcomponents.NavegadorSite.x(NavegadorSite.java:35) 
    at br.ufs.httpcomponents.NavegadorSite.main(NavegadorSite.java:50) 
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at sun.security.validator.PKIXValidator.doBuild(Unknown Source) 
    at sun.security.validator.PKIXValidator.engineValidate(Unknown Source) 
    at sun.security.validator.Validator.validate(Unknown Source) 
    at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source) 
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source) 
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) 
    ... 20 more 
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source) 
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source) 
    at java.security.cert.CertPathBuilder.build(Unknown Source) 
    ... 26 more 

更多一个问题:这是非法的做这个?我从一个受版权保护的网站获取信息。

谢谢!

回答

0

您可能需要出示证书或将其CA导入您的信任存储。如果它只是一个测试宠物项目,您可以将insecure设置为您的http客户端的选项。

相关问题