如何解决jsoup错误:无法找到请求目标的有效证书路径 [英] how to resolve jsoup error: unable to find valid certification path to requested target

查看:252
本文介绍了如何解决jsoup错误:无法找到请求目标的有效证书路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试解析以下网址的html:



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



我收到以下错误:

  sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法在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.secur ity.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491)
... 15更多
引起的:sun.security.provider.certpath.SunCertPathBuilderException:无法在sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
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更多


这是我的代码:

 公共类MainActivity扩展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();
文档文档= 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(元素元素:元素){
arrayList.add(element.text());
}
} catch(IOException e){
e.printStackTrace();
}
返回null;
}
@Override
protected void onPostExecute(String result){
listView.setAdapter(arrayAdapter);
}

}

}


validateTLSCertificates(false):

 文档文档= Jsoup.connect(URL)。timeout(10000).validateTLSCertificates(false).get(); 

由于读取页面也需要一段时间,因此增加超时 timeout( 10000)


I am trying to parse the html of the following URL:

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

I'm getting the following error:

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


This is my 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);
        }

    }

}

解决方案

You can ignore TSL validation, set validateTLSCertificates(false):

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

Since the reading the page also takes a while, increase the timeout timeout(10000).

这篇关于如何解决jsoup错误:无法找到请求目标的有效证书路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆