Jsoup connect не работает правильно, когда есть абсолютная ссылка? - PullRequest
0 голосов
/ 01 июня 2018

Я использую Jsoup для получения HTML с веб-сайтов.например, у меня ссылки на моей HTML-странице выглядят следующим образом:

String url="http://kitchen.sayidaty.net/node/8544/كوكيزبالشوفان/حلويات";
Document doc=Jsoup.connect(url).get();

эта ссылка не анализирует НИЧЕГО и выдает IOException, но когда я открываю эту ссылку вручную в браузере и возвращаю ее к своему коду, она изменяетсяи работает отлично!как это:

String url="http://kitchen.sayidaty.net/node/8544/%D9%83%D98%B2-%D8%A7%D9%86/%D8%AD%D9%84%D9%88%D9%8A%D8%A7%D8%AA#ingredients";
Document doc=Jsoup.connect(url).get();

есть ли способ получить абсолютную ссылку (вторая), я пробовал это, но тот же результат: '(

link.attr("abs:href") 

1 Ответ

0 голосов
/ 01 июня 2018

Проблема, с которой вы сталкиваетесь, связана с дескриптором протокола HTTP спецификации набора символов при выполнении таких транзакций, как POST и GET.Вы должны использовать формат application/x-www-form-urlencoded MIME (Для получения дополнительной информации о кодировке формы HTML обратитесь к спецификации HTML ).

В вашем случае, чтобы это работало, вы должны использовать URL-код Android * , но только в конце адреса, который хотите использовать, чтобы избежать проблем.Так что преобразуйте:

String url="http://kitchen.sayidaty.net/node/8544/كوكيزبالشوفان/حلويات";

В:

String auxUrl= URLEncoder.encode("كوكيزبالشوفان/حلويات", "utf-8");
String url="http://kitchen.sayidaty.net/node/8544/" + auxUrl;

Затем перейдите к

Document doc=Jsoup.connect(url).get();
...