Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中从特定网站抓取html_Java_Android_Httpclient - Fatal编程技术网

Java 在android中从特定网站抓取html

Java 在android中从特定网站抓取html,java,android,httpclient,Java,Android,Httpclient,我已经尝试获取这个webapge的html源代码。然而,我遇到了一个错误,因为与我从浏览器中看到的内容相比,它使用了不同类型的html进行响应。似乎对web和应用程序执行httopost会导致不同类型的响应 address="http://www.mindef.gov.sg/content/imindef/press_room/official_releases/nr/2013/jan/22jan13_nr.html"; String result = ""; H

我已经尝试获取这个webapge的html源代码。然而,我遇到了一个错误,因为与我从浏览器中看到的内容相比,它使用了不同类型的html进行响应。似乎对web和应用程序执行httopost会导致不同类型的响应

address="http://www.mindef.gov.sg/content/imindef/press_room/official_releases/nr/2013/jan/22jan13_nr.html";
        String result = "";
        HttpClient httpclient = new DefaultHttpClient();

    //  httpclient.getParams().setParameter("http.protocol.single-cookie-header", true);
        HttpProtocolParams.setUserAgent(httpclient.getParams(),  "Mozilla/5.0 (Linux; U; Android 2.2.1; en-ca; LG-P505R Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1");           
InputStream is = null;
HttpGet httpGet = new HttpGet (address);

                HttpResponse response = httpclient.execute(httpGet);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
            InputStream is = null;
尝试:


阅读输入流。

听起来你正在获得该站点的移动版本。如果您将URL扩展为包含
?siteversion=pc
,则应将页面作为浏览器提供给您的计算机。

尝试以下操作:

StringBuilder builder = new StringBuilder();
String line = null;
HttpGet get = new HttpGet("http://www.url.com");
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(get);
InputStream is = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
while ((line = reader.readLine()) != null) builder.append(line);

那么,页面源应该在
builder

中,那么为什么要使用HTTP POST获取页面源呢?如果不向页面发送数据,那么应该使用
GET
请求,而不是
POST
。也就是说,如果你不解释你收到了什么,你就不太可能得到正确的帮助。我刚从网络上获取了一个大的html源代码。httpget应该是正确的
StringBuilder builder = new StringBuilder();
String line = null;
HttpGet get = new HttpGet("http://www.url.com");
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(get);
InputStream is = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
while ((line = reader.readLine()) != null) builder.append(line);