2012-04-14 25 views
2

我试图让HTML源从一个网站,用户输入,我到目前为止的代码串是这样的:从Android应用阅读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 ""; 
    } 
} 

每次我试着运行这个我碰到第二个catch(IOException),根据文档意味着服务器未能提供有效的响应...我正在测试这样的网站,如“http:\ www.google.com \”,所以他们应该肯定是响应

+0

您是否添加了如android.permission.INTERNET所需的权限? – Jems 2012-04-14 18:00:57

+0

我只有这一个权限: 有其他吗? – CHollman82 2012-04-14 18:06:56

+0

如果这实际上是你的网址,那么这是不正确的。 'www' – FoamyGuy 2012-04-14 18:18:22

回答

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> 
+0

谢谢,我的清单看起来完全像这样,我确定我使用了正确的地址(我尝试了很多),仍然无法正常工作,当我调用httpClient.execute()时仍然被捕获为IOException。 ..我现在拉着我的头发,你们告诉我代码看起来不错! – CHollman82 2012-04-14 22:07:58

+0

尝试使用调试器,并逐步检查变量的值 – deadfish 2012-04-14 23:00:25

+0

,并尝试将网站地址放入新的HttpGet(...至少你会确定地址网站不是问题 – deadfish 2012-04-14 23:03:34

1

除非你想要做一些自定义解析与整个字符串,我会建议你使用一个HTML解析器库。我使用HTML清洁剂,显示here

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

+0

感谢您的提示! – CHollman82 2012-04-15 02:53:21

+0

我编辑了答案,因为它缺少链接。对不起这是我的错。 ;) – 2012-04-15 08:37:53