Я изучаю jsoup с android studio. Я попробовал следующий код в intellij, и он работал нормально. Также он прекрасно работает в API Vesrion 19, но не для более высоких версий API.
private TextView textView;
private static final String TAG = "Main2Activity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
textView = findViewById(R.id.textView2);
getWebsite();
}
private void getWebsite() {
new Thread(new Runnable() {
@Override
public void run() {
final StringBuilder builder = new StringBuilder();
try {
String url = "https://isa.ir/content/3895/";
Connection.Response response;
response = Jsoup.connect(url)
.followRedirects(true)
.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 OPR/64.0.3417.150")
.execute();
Log.d(TAG, "run: " + response.statusCode());
Log.d(TAG, "run: " + response.headers().toString());
Document doc = response.parse();
final Elements text = doc.select(".yw_cnt div:nth-child(2)");
Log.d(TAG, "run: " + text.text());
for (Element link : text) {
builder.append(link.text());
}
} catch (IOException e) {
builder.append("Error : ").append(e.getMessage()).append("\n");
}
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText(builder.toString());
}
});
}
}).start();
}
}
Я получаю ошибку слишком много перенаправлений.
Также ссылка https://isa.ir/content/3895/ превращается в https://isa.ir/content/3895/%D9%85%D8%A7%D9%87%D9%88%D8%A7%D8%B1%D9%87-%D8%B8%D9%81%D8%B1-%D8%A8%D9%87-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86-%D9%81%D8%B6%D8%A7%DB%8C%DB%8C-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D8%AA%D8%AD%D9%88%DB%8C%D9%84-%D8%AF%D8%A7%D8%AF%D9%87-%D8%B4%D8%AF в браузере.
В Logcat во время тестирования я правильно получаю перенаправленный URL в API 19, но в более высоких API персидские символы превращаются в знаки вопроса, подобные этому https://isa.ir/content/3886/ ?????? ??. Я думаю, что проверил все, что связано с кодированием, но проблема все еще сохраняется.
Как я могу это исправить?