2016-10-06 101 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客戶端的選項。

相關問題