2

我试图从用户输入的网站中获取字符串中的 HTML 源代码,到目前为止我的代码如下所示:

public String getURLContent(String url)
{
    try 
    {
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(url);
        ResponseHandler<String> resHandler = new BasicResponseHandler();
        String page = httpClient.execute(httpGet, resHandler);
        return page;
    }
    catch (ClientProtocolException e)
    {
        e.printStackTrace();
        return "";
    }
    catch (IOException e)
    {
        e.printStackTrace();
        return "";
    }
}

每次我尝试运行它时,我都会遇到第二个问题(IOException),根据文档,这意味着服务器无法给出有效的响应......我正在使用“http:\www.google.com\”之类的网站进行测试“,所以他们肯定应该回应

4

2 回答 2

1

除非您想对整个字符串进行一些自定义解析,否则我建议您使用 HTML 解析器库。我使用 HTML 清洁器,显示在这里

这使得所有的马都为你工作。

于 2012-04-14T19:15:11.463 回答
1

你的代码没问题。确保粘贴完整的网站路径:http://www. [page] . [domain]例如:http://www.google.com 并将此权限添加到AndroidManifest.xml

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

就在之前(如果是新项目):

<application android:label="@string/app_name">

完整示例:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:label="@string/app_name">
        <activity android:name="MyActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest> 
于 2012-04-14T19:35:14.357 回答