`

Android Post Get 示例

阅读更多

package alex.reader.ebook.bam;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.params.HttpClientParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;

public class SimpleClient extends Activity {

    private HttpParams httpParams;

    private HttpClient httpClient;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simple_client);

        EditText editText = (EditText) this.findViewById(R.id.EditText01);

        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("email", "firewings.r@gmail.com"));
        params.add(new BasicNameValuePair("password", "954619"));
        params.add(new BasicNameValuePair("remember", "1"));
        params.add(new BasicNameValuePair("from", "kx"));
        params.add(new BasicNameValuePair("login", "登 录"));
        params.add(new BasicNameValuePair("refcode", ""));
        params.add(new BasicNameValuePair("refuid", "0"));

        Map params2 = new HashMap();

        params2.put("hl", "zh-CN");

        params2.put("source", "hp");

        params2.put("q", "haha");

        params2.put("aq", "f");

        params2.put("aqi", "g10");

        params2.put("aql", "");

        params2.put("oq", "");

        String url2 = "http://www.google.cn/search";

        String url = "http://wap.kaixin001.com/home/";

        getHttpClient();

        editText.setText(doPost(url, params));

        // editText.setText(doGet(url2, params2));

    }

    public String doGet(String url, Map params) {

        /* 建立HTTPGet对象 */

        String paramStr = "";

        Iterator iter = params.entrySet().iterator();
        while (iter.hasNext()) {
            Map.Entry entry = (Map.Entry) iter.next();
            Object key = entry.getKey();
            Object val = entry.getValue();
            paramStr += paramStr = "&" + key + "=" + val;
        }

        if (!paramStr.equals("")) {
            paramStr = paramStr.replaceFirst("&", "?");
            url += paramStr;
        }
        HttpGet httpRequest = new HttpGet(url);

        String strResult = "doGetError";

        try {

            /* 发送请求并等待响应 */
            HttpResponse httpResponse = httpClient.execute(httpRequest);
            /* 若状态码为200 ok */
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                /* 读返回数据 */
                strResult = EntityUtils.toString(httpResponse.getEntity());

            } else {
                strResult = "Error Response: "
                        + httpResponse.getStatusLine().toString();
            }
        } catch (ClientProtocolException e) {
            strResult = e.getMessage().toString();
            e.printStackTrace();
        } catch (IOException e) {
            strResult = e.getMessage().toString();
            e.printStackTrace();
        } catch (Exception e) {
            strResult = e.getMessage().toString();
            e.printStackTrace();
        }

        Log.v("strResult", strResult);

        return strResult;
    }

    public String doPost(String url, List<NameValuePair> params) {

        /* 建立HTTPPost对象 */
        HttpPost httpRequest = new HttpPost(url);

        String strResult = "doPostError";

        try {
            /* 添加请求参数到请求对象 */
            httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
            /* 发送请求并等待响应 */
            HttpResponse httpResponse = httpClient.execute(httpRequest);
            /* 若状态码为200 ok */
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                /* 读返回数据 */
                strResult = EntityUtils.toString(httpResponse.getEntity());

            } else {
                strResult = "Error Response: "
                        + httpResponse.getStatusLine().toString();
            }
        } catch (ClientProtocolException e) {
            strResult = e.getMessage().toString();
            e.printStackTrace();
        } catch (IOException e) {
            strResult = e.getMessage().toString();
            e.printStackTrace();
        } catch (Exception e) {
            strResult = e.getMessage().toString();
            e.printStackTrace();
        }

        Log.v("strResult", strResult);

        return strResult;
    }

    public HttpClient getHttpClient() {

        // 创建 HttpParams 以用来设置 HTTP 参数(这一部分不是必需的)

        this.httpParams = new BasicHttpParams();

        // 设置连接超时和 Socket 超时,以及 Socket 缓存大小

        HttpConnectionParams.setConnectionTimeout(httpParams, 20 * 1000);

        HttpConnectionParams.setSoTimeout(httpParams, 20 * 1000);

        HttpConnectionParams.setSocketBufferSize(httpParams, 8192);

        // 设置重定向,缺省为 true

        HttpClientParams.setRedirecting(httpParams, true);

        // 设置 user agent

        String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2) Gecko/20100115 Firefox/3.6";
        HttpProtocolParams.setUserAgent(httpParams, userAgent);

        // 创建一个 HttpClient 实例

        // 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient

        // 中的用法,在 Android 1.5 中我们需要使用 Apache 的缺省实现 DefaultHttpClient

        httpClient = new DefaultHttpClient(httpParams);

        return httpClient;
    }
}
 
分享到:
评论

相关推荐

    android基础 - POST GET

    在Android开发中,POST和GET是两种主要的HTTP请求方法,用于从服务器获取数据或向服务器发送数据。...通过理解这些基本概念和实践,开发者可以更好地在Android应用中利用POST和GET方法与服务器进行数据交互。

    Android的JSON示例(ASP+Access2003+IIS)

    (示例为记录号,1或2,可选用HttpGet或HttpPost方法) 2.服务器端读取数据库对应记录,并将Response以JSON格式返回至移动端显示 三、使用说明: 1.请自行配置IIS(解压之后的Webroot文件夹),并修改源码中的URL 2....

    HttpTest Get与Post示例

    本教程将深入探讨如何在Android中使用HTTP GET和POST方法进行网络请求,通过一个实际的HttpTest示例来阐述相关知识。 一、HTTP GET与POST的区别 1. GET:主要用来获取资源,它是幂等的,即多次执行同一个GET请求,...

    Android Get和Post方式访问网络

    `GetPostTest`可能是一个包含Android应用示例代码的类,它演示了如何使用GET和POST方法进行网络通信。在这个类中,你可能会看到如何创建HTTP请求,设置请求头,处理响应数据,以及异常处理等。例如,它可能包括使用`...

    Android端使用get post 方法提交数据到服务器demo

    本文将详细讲解如何在Android端使用GET和POST方法提交数据到服务器,并结合传智播客张泽华Android视频54-57中的代码示例进行解析。 一、GET方法 GET方法是最简单的HTTP请求方式,常用于获取服务器上的资源。在...

    android httpget post

    在Android开发中,HTTP协议是应用层中广泛使用的通信协议,...总之,理解并掌握Android中的GET和POST请求对于任何Android开发者来说都是必备技能。通过实践和学习相关示例,你可以更好地应对各种网络数据交互的需求。

    android 后台 get和post请求数据

    在Android开发中,与服务器进行数据交互是必不可少的步骤,主要通过HTTP协议的GET和POST方法来实现。本文将深入探讨这两种方法以及如何在Android后台实现它们。 首先,GET和POST是HTTP协议中最常见的两种请求方法。...

    Android登陆get方式和post方式

    在Android应用开发中,用户身份验证是...综上所述,GET和POST在Android登录场景中各有优劣,开发者应根据实际需求和安全考虑选择合适的方法。在处理敏感信息时,POST通常更安全,而GET则适用于简单、无状态的查询操作。

    Android的天气预报示例

    通过GET或POST方法与天气API交互,获取JSON或XML格式的数据。例如,可以使用OpenWeatherMap等公开API,它们提供了实时天气和未来几天的预报。 在接收到网络响应后,我们需要解析返回的数据。如果是JSON,可以使用...

    android http post/get

    在Android开发中,HTTP通信是应用与服务器交互的重要方式,主要通过POST和GET两种方法进行数据传输。本篇文章将深入探讨Android中如何实现HTTP POST和GET请求,以及相关的上传和下载功能。 首先,GET和POST是HTTP...

    Android Studio发起GET网络请求

    在Android开发中,获取网络数据是常见的需求,通常我们通过HTTP协议发起GET或POST请求来实现。本教程将详细介绍如何在Android Studio中使用Java编写代码发起GET网络请求,适合初学者学习。 首先,理解GET请求的基本...

    android getpost url

    本文将深入探讨Android应用中如何实现GET与POST请求,并通过具体示例代码来帮助开发者更好地理解和掌握这两种HTTP请求方式。 #### GET请求 GET请求是一种用于获取资源的方法,通常用于从服务器获取数据。在Android...

    android httpclient文件上传 http协议post get方法向服务器传输数据

    总结来说,本项目通过具体的代码示例,深入浅出地介绍了Android中HTTPClient的使用,包括GET和POST请求的实现,以及文件上传的详细步骤。这对于任何需要进行网络通信的Android开发者来说,都是不可或缺的知识点。

    Android-Httpclient_Get_Post

    这个名为"Android-Httpclient_Get_Post"的资源可能是一个示例项目或教程,展示了如何在Android应用中使用`HttpClient`进行网络数据的获取与提交。 首先,`HttpClient`是Apache的一个组件,它提供了对HTTP协议的全面...

    Android通过get,post方式客户端与服务器端交互实例

    在这个实例中,我们将探讨两种主要的HTTP请求方法:GET和POST,以及如何在Android客户端中使用它们。 1. GET方法: GET方法是最基础的HTTP请求方法,通常用于获取资源。在Android中,我们可以使用HttpURLConnection...

    android_http_get_post

    以下是一个简单的使用HttpURLConnection实现GET和POST请求的Java代码示例: ```java public class NetworkHelper { public static String makeGetRequest(String url) throws IOException { HttpURLConnection ...

    Android-一个python的网页postget以及上传图片的工具类

    总的来说,这个"Android-一个python的网页postget以及上传图片的工具类"提供了便捷的Python接口,帮助Android开发者更高效地进行网络通信,尤其是处理图片上传等复杂任务。通过合理地利用这样的工具,开发者可以将更...

    get 和post 实例

    在Android中,实现GET和POST请求,我们可以使用`HttpURLConnection`、`HttpClient`(已废弃但仍然可用)或者第三方库如Retrofit、Volley等。以下是一个基于HttpClient的简单示例: ```java // 创建HttpClient实例 ...

    android http (get, post, put)封装

    本篇将详细探讨如何封装Android中的HTTP请求,包括GET、POST和PUT方法,以便在项目中方便地调用。 首先,让我们了解HTTP的基本概念。HTTP(超文本传输协议)是一种无状态、基于文本的协议,主要负责Web应用程序的...

    Android HttpClient GET或者POST请求基本使用方法

    Android SDK提供了一个名为Apache HttpClient的库,使得开发者可以方便地实现HTTP请求,包括常见的GET和POST方法。下面我们将详细探讨这两种方法的使用。 ### GET 请求 GET请求是最简单的一种HTTP请求,通常用于从...

Global site tag (gtag.js) - Google Analytics