JSoup で URL に接続できません。
私がテストしようとしている URL は www.xbox.com/en-US/security で、これはhttp://www.xbox.com/en-US/Live/Account-Securityへの 302 (だと思います) リダイレクト です。リダイレクトに従い、.headers("location") を使用して新しい URL を取得するように jsoup を設定しました。返される URL は /en-US/Live/Account-Security です。私はそれを処理する方法がわからない、私のコードは以下の通りです:
while (i < retries){
try {
response = Jsoup.connect(checkUrl)
.userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
.followRedirects(false)
.timeout(10000)
.execute();
success = true;
break;
} catch (SocketTimeoutException ex){
timeout = true;
} catch (MalformedURLException ep){
malformedUrl = true;
}catch (IOException e) {
statusCode = 404;
}
}
private void getStatus(){
if (success){
statusCode = response.statusCode();
success = false;
}
if (statusCode >= 300 && statusCode <= 399){
//System.out.println("redirect: " +statusCode + " " +checkUrl);
checkUrl = response.header("location");
//System.out.println(checkUrl);
connect();
getStatus();
}
}
これを処理する方法について誰か提案がありますか? または、checkUrl = response.header("location"); をチェックする必要があります。それが有効な URL であるかどうかを確認し、そうでない場合はテストしないでください。