我正在尝试从网站获取数据。 当我在Intellij IDEA中使用此代码时,一切正常,但是当我在Android Studio和真实设备中使用此代码时,我得到:
org.jsoup.HttpStatusException:HTTP错误提取URL。状态= 403
这是我的代码:
private static final String URL = "http://www.openaip.net/airports?apttype_type_filter=All&country_filter=All&name_filter=EHAM";
private static final String useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " +
"AppleWebKit/537.36 (KHTML, like Gecko) " +
"Chrome/52.0.2743.116 Safari/537.36";
Document document = Jsoup.connect(URL)
.userAgent(useragent)
.ignoreContentType(true)
.timeout(5000)
.execute() // <-- on this line I get error
.parse();
我发现的所有信息仅与“userAgent()”方法有关,但它没有帮助。
UPD:抱歉,这是我的不好问题。正确的网址:http://www.openaip.net/airports?apttype_type_filter=All&country_filter=All&name_filter=EHAM,但我仍有同样的问题。
错误: org.jsoup.HttpStatusException:HTTP错误提取URL。状态= 403, URL = http://www.openaip.net/airports?apttype_type_filter=All&country_filter=All&name_filter=EHAM
答案 0 :(得分:2)
我已在请求中添加了缺少的header
,我能够检索网站内容,我使用的代码是:
Document document = Jsoup.connect(URL)
.userAgent("Mozilla")
.header("Accept", "text/html")
.header("Accept-Encoding", "gzip,deflate")
.header("Accept-Language", "it-IT,en;q=0.8,en-US;q=0.6,de;q=0.4,it;q=0.2,es;q=0.2")
.header("Connection", "keep-alive")
.ignoreContentType(true)
.get();
答案 1 :(得分:1)
这不是Android的问题。
尝试访问浏览器中的网址,但它也无法正常工作。
请务必确认您尝试访问的是正确的网址。