我试图解析使用jsoup(1.3.3)在我的Android活动的一些HTML。当我把这种代码

Jsoup.connect("http://www.google.com").get();

它工作正常,在Android 2.1及2.2,但在1.6我收到了。 “java.io.IOException异常:403错误加载URL”

我使用模拟器来测试这一点,我已经注意到,AdMob广告也不会在1.6展示,但他们在2.0,2.1和2.2的工作。

在1.6模拟器使用Web浏览器不工作,所以我非常有信心,这个问题是在我的代码的某个地方。

有一些额外的许可,我需要在1.6上网不要在2.0 +?

需要

这是我的manifest文件是如何构成的,它的使用许可权标签的位置有什么影响?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.foo.bar"
  android:versionCode="1"
  android:versionName="1.0"
  android:installLocation="auto">

<application android:icon="@drawable/icon" 
android:label="@string/app_name" 
android:theme="@android:style/Theme.NoTitleBar" 
android:name="blahblah" 
android:description="@string/app_desc">

    <activity android:label="@string/app_name" android:name=".activities.MainMenu">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

<activity android:name=".activities.FullList" android:label="@string/app_name"/>

<!-- The application's publisher ID assigned by AdMob -->
<meta-data android:value="blahblahblah" android:name="ADMOB_PUBLISHER_ID" />

</application>
<uses-sdk android:minSdkVersion="4"/>

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

</manifest>

我试过从头开始创建只有一个Hello World屏幕一个新项目,使用Jsoup.connect()方法和工作在相同的1.6模拟器罚款,因此它必须是一个代码问题,但我不能弄明白。

有帮助吗?

解决方案

JSOUP内部使用 HttpURLConnection类。这里是抛绳例外

在网络连接正常(否则它会较早抛出异常),你都可以从服务器的回复是:的 403 HTTP FORBIDDEN

是否有某种替代登录?做检查,你可以在同一设备/模拟器浏览器中打开相同的URL。

其他提示

尝试插入/用途-SDK附近的脚本的结尾或尝试与每个用尖括号包围删除/用途的许可

  

我试过从头开始创建只有一个Hello World屏幕一个新项目,使用Jsoup.connect()方法和工作在相同的1.6模拟器罚款,因此它必须是一个代码问题,但我不能弄明白。

尝试把此一测试的使用在应用程序启动时的早期(或如果使一个ANR超时,添加一个“测试”按钮)

请您申请的副本和评论的很多东西了。

您最小的测试,工程和完整的应用程序,没有介于两者之间,其实存在着一个重要的区别。递归分差和征服它...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top