Android系统。 HTTP错误提取URL。状态= 403

时间:2017-11-14 12:25:35

标签: android jsoup

我正在尝试从网站获取数据。 当我在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

2 个答案:

答案 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的问题。

尝试访问浏览器中的网址,但它也无法正常工作。

请务必确认您尝试访问的是正确的网址。