如何解决jsoup错误:无法找到到请求目标的有效证书路径

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

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

我收到以下错误:

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

这是我的代码:

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);

}

}

}

回答:


回答:

由于JSoup在1.12.1版(https://jsoup.org/news/release-1.12.1)中已弃用并删除了validateTLSCertificates方法,因此此答案已过时。

您可以忽略TSL验证,设置为validateTLSCertificates(false)

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

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

以上是 如何解决jsoup错误:无法找到到请求目标的有效证书路径 的全部内容, 来源链接: utcz.com/qa/432206.html

回到顶部