2016-11-22 4 views
7

Ich versuche, den HTML-Code der folgenden URL zu finden zu analysieren:wie lösen jsoup Fehler: nicht in der Lage gültigen Zertifizierungspfad angeforderten Ziel

https://www.smuc.ac.kr/mbs/smuc/jsp/board/list.jsp?boardId=6993&id=smuc_040100000000

Ich erhalte die folgende Fehlermeldung:

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(PKIXValidator.java:387) 
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) 
    at sun.security.validator.Validator.validate(Validator.java:260) 
    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) 
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) 
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) 
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) 
    ... 15 more 
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) 
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) 
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) 
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) 
    ... 21 more 


Dies ist mein Code:

public class MainActivity extends AppCompatActivity { 
    private ListView listView; 
    private TextView textView; 
    public ArrayList<String> arrayList = new ArrayList<String>(); 
    private ArrayAdapter<String> arrayAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     listView = (ListView) findViewById(R.id.listView); 
     new Insert().execute(); 
     arrayAdapter = new ArrayAdapter<String>(MainActivity.this, R.layout.list_ok, R.id.text, arrayList); 
     } 

    class Insert extends AsyncTask<String, Void, String> { 
     @Override 
     protected String doInBackground(String... params) { 
      try { 
       // Connection.Response res = Jsoup.connect("https://www.smuc.ac.kr/mbs/smuc/index.jsp") 
       //   .method(Connection.Method.POST) 
       //   .execute(); 
       Document document = Jsoup.connect("https://www.smuc.ac.kr/mbs/smuc/jsp/board/list.jsp?boardId=6993&id=smuc_040100000000").get(); 
       Elements elements = document.select(".tit"); 
       arrayList.clear(); 
       for (Element element : elements) { 
        arrayList.add(element.text()); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      return null; 
     } 
     @Override 
     protected void onPostExecute(String result){ 
      listView.setAdapter(arrayAdapter); 
     } 

    } 

} 

Antwort

14

Yo u kann TSL Validierung ignorieren, setzen validateTLSCertificates(false):

Document document = Jsoup.connect("URL").timeout(10000).validateTLSCertificates(false).get(); 

Da das Lesen der Seite gibt es auch eine Weile dauert, timeout(10000) das Timeout erhöhen.

+0

Vielen Dank es ist mir geholfen! @ flavio.donze –

+0

sicher) @ flavio.donze –

Verwandte Themen