Android 获取url时发生Jsoup http错误

Android 获取url时发生Jsoup http错误,android,jsoup,Android,Jsoup,我只需下载最新版本的jsoup(1.7.1)并遵循官方代码(更改了url)。然后我得到了“http错误获取url” 我的代码有什么问题?这个错误似乎发生在Android项目中,因为我在一个Java项目中也做了同样的事情,效果很好 注意: -我已经添加了Internet权限我也遇到了类似的问题。可能是您的设备连接太慢,connect()函数超时太快,或者可能是由于某种无害的HTTP错误状态而失败。此外,我的Jsoup连接对大多数页面都有效,但对一些页面,我得到了“HTTP错误获取URL.Statu

我只需下载最新版本的jsoup(1.7.1)并遵循官方代码(更改了url)。然后我得到了“http错误获取url”

我的代码有什么问题?这个错误似乎发生在Android项目中,因为我在一个Java项目中也做了同样的事情,效果很好

注意:
-我已经添加了Internet权限

我也遇到了类似的问题。可能是您的设备连接太慢,connect()函数超时太快,或者可能是由于某种无害的HTTP错误状态而失败。此外,我的Jsoup连接对大多数页面都有效,但对一些页面,我得到了“HTTP错误获取URL.Status=307”。事实证明,这实际上是一个从web服务器到另一个URL的重定向请求。我用以下代码解决了所有这些问题:

Connection.Response res = Jsoup.connect(sUrl).
        timeout(5000).ignoreHttpErrors(true).followRedirects(true).execute();
if (res.statusCode() == 307) {
    String sNewUrl = res.header("Location");
    if (sNewUrl != null && sNewUrl.length() > 7)
        sUrl = sNewUrl;
    res = Jsoup.connect(sUrl).
            timeout(5000).execute();
}
Document doc = res.parse();
希望这对您有所帮助,或者至少启发您在调用get()或execute()之前尝试更多设置

格雷格

Connection.Response res = Jsoup.connect(sUrl).
        timeout(5000).ignoreHttpErrors(true).followRedirects(true).execute();
if (res.statusCode() == 307) {
    String sNewUrl = res.header("Location");
    if (sNewUrl != null && sNewUrl.length() > 7)
        sUrl = sNewUrl;
    res = Jsoup.connect(sUrl).
            timeout(5000).execute();
}
Document doc = res.parse();