Android通过URL获取网络数据(2)

//第一种
	/**
	 * 获取参数(ArrayList nameValuePairs,String url)后post给远程服务器
	 * 将获得的返回结果(String)返回给调用者
	 * 本函数适用于查询数量较少的时候
	 * qian.long
	 * 2011-06-07
	 */
	public String posturl(ArrayList 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
	 * qian.long
	 * 2011-06-07
	 */
	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;
	}
	 
	//第三种
	/**
	 * 获取指定地址的网页数据
	 * 返回数据流
	 * qian.long
	 * 2011-06-07
	 */
	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;
	}
 

你可能感兴趣的:(android)