Android获取网页数据的方法总结
本文总结了三种获取网页数据的代码,是自己在用的时候随手整理出来的。此处仅贴出函数段,不贴出import了,用的时候可以用eclipse自动import一下就行了。函数的详细用途描述请看代码中注释。调用的时候请对应函数需要的参数。
//第一种 /**获取参数(ArrayList<NameValuePair> nameValuePairs,String url)后post给远程服务器 * 将获得的返回结果(String)返回给调用者 * 本函数适用于查询数量较少的时候 * Chen.Zhidong * 2011-02-15*/ public String posturl(ArrayList<NameValuePair> nameValuePairs,String url){ String result = ""; String tmp= ""; InputStream is = null; try{ httpClient httpclient = new DefaultHttpClient(); Httppost httppost = new HttpPost(url); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); }catch(Exception e){ return "Fail to establish http connection!"; } try{ BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8")); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); tmp=sb.toString(); }catch(Exception e){ return "Fail to convert net stream!"; } try{ JSONArray jArray = new JSONArray(tmp); for(int i=0;i<jArray.length();i++){ JSONObject json_data = jArray.getJSONObject(i); Iterator> keys=json_data.keys(); while(keys.hasNext()){ result += json_data.getString(keys.next().toString()); } } }catch(JSONException e){ return "The URL you post is wrong!"; } return result; } //第二种 /**获取参数指定的网页代码,将其返回给调用者,由调用者对其解析 * 返回String * Chen.Zhidong * 2011-02-15*/ public String posturl(String url){ InputStream is = null; String result = ""; try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); }catch(Exception e){ return "Fail to establish http connection!"+e.toString(); } try{ BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8")); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result=sb.toString(); }catch(Exception e){ return "Fail to convert net stream!"; } return result; } //第三种 /**获取指定地址的网页数据 * 返回数据流 * Chen.Zhidong * 2011-02-18*/ public InputStream streampost(String remote_addr){ URL infoUrl = null; InputStream inStream = null; try { infoUrl = new URL(remote_addr); URLConnection connection = infoUrl.openConnection(); HttpURLConnection httpConnection = (HttpURLConnection)connection; int responseCode = httpConnection.getResponseCode(); if(responseCode == HttpURLConnection.HTTP_OK){ inStream = httpConnection.getInputStream(); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return inStream; }
相关文章
上一篇: 我的Nagios安装配置笔记下一篇: 原创Android核辐射监测应用
hello boy
/home/sillydon/public_html/
@猪哥靓:我的博客有漏洞?
[...] ? [...]