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

  • 相关阅读:
    图书管理系统---基于form组件和modelform改造添加和编辑
    Keepalived和Heartbeat
    SCAN IP 解释
    Configure Active DataGuard and DG BROKER
    Oracle 11gR2
    我在管理工作中積累的九種最重要的領導力 (李開復)
    公募基金公司超融合基础架构与同城灾备建设实践
    Oracle 11g RAC for LINUX rhel 6.X silent install(静默安装)
    11gR2 静默安装RAC 集群和数据库软件
    Setting Up Oracle GoldenGate 12
  • 原文地址:https://www.cnblogs.com/shocker/p/2423361.html
Copyright © 2011-2022 走看看