zoukankan      html  css  js  c++  java
  • [Android][转]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;
    }

    转自:http://sillydong.com/myjava/android-http-methods.html

  • 相关阅读:
    Codevs 2296 仪仗队 2008年省队选拔赛山东
    Codevs 1535 封锁阳光大学
    Codevs 1069 关押罪犯 2010年NOIP全国联赛提高组
    Codevs 1218 疫情控制 2012年NOIP全国联赛提高组
    Codevs 1684 垃圾陷阱
    洛谷 P1108 低价购买
    Vijos P1325桐桐的糖果计划
    Codevs 3289 花匠 2013年NOIP全国联赛提高组
    Codevs 2611 观光旅游(floyed最小环)
    C语言基础之彩色版C语言(内含linux)
  • 原文地址:https://www.cnblogs.com/shocker/p/2423361.html
Copyright © 2011-2022 走看看