安卓学习之httpclient的应用

很多时候,我们的app客户端是需要和我们的web端共用同一个服务器端的。

但有时,我们需要来取得数据中的数据对我们的app客户端进行一些事物处理(例如用户登陆的用户名密码正确性的校验)。

通常的情况下我们会在我们的app程序中写sqllite来进行sql查询,但是最近兴起了一门跨应用的交互的http协议,即httpclient。

应用httpclient我们要在我们的服务器端做好相应的接口,在app端编写httpclient来调用服务器端的接口进行相应的数据交互

废话不多说,代码走起。


package com.example.OA.HttpClientToServer;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
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.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;


/**
 * /*************
 *
 * @author   to-two-to
 * @des      httpclient客户端请求程序
 * @date     2014年9月19日
 *
 */
public class HttpClient_To_Server {
    HttpClient httpClient;
    /**
     *
     * @param urlAddress:请求地址
     * @param username:用户名
     * @param password:密码
     * @return String类型的请求结果(成功:"true",)
     * @throws Exception
     */
        public String doGet(String urlAddress,String username,String password){


            httpClient= new DefaultHttpClient();
            urlAddress = urlAddress + "?UNAME="+username+"&PASSWORD="+password;
            try{
                // 创建HttpGet对象。
                HttpGet get = new HttpGet(urlAddress);
                // 发送GET请求
                HttpResponse httpResponse = httpClient.execute(get);
                // 如果服务器成功地返回响应
                if (httpResponse.getStatusLine()
                        .getStatusCode() == HttpStatus.SC_OK)
                {
                    // 获取服务器响应字符串
                    String result = EntityUtils.toString(httpResponse.getEntity());
                    return result;
                }
                else {
                    // 如果服务器失败返回响应数据"error"
                    return "error";
                }
            }catch(Exception e){
                e.printStackTrace();
                return "获取数据失败!";
            }finally{
                // 关闭HttpClient
                httpClient.getConnectionManager().shutdown();
            }


        }

    /**
     *
     * @param url 发送请求的URL
     * @param rawParams 请求参数
     * @return 服务器响应字符串
     * @throws Exception
     */
    public  String postRequest(String url
            , Map<String ,String> rawParams)
    {
        httpClient = new DefaultHttpClient();
        try{
            // 创建HttpPost对象。
            HttpPost post = new HttpPost(url);
            // 如果传递参数个数比较多的话可以对传递的参数进行封装
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            for(String key : rawParams.keySet())
            {
                //封装请求参数
                params.add(new BasicNameValuePair(key , rawParams.get(key)));
            }
            // 设置请求参数,并指定客户端传输的编码格式为UTF-8,以防中文乱码的出现
            post.setEntity(new UrlEncodedFormEntity(
                    params, HTTP.UTF_8));
            // 发送POST请求
            HttpResponse httpResponse = httpClient.execute(post);
            // 如果服务器成功地返回响应
            if (httpResponse.getStatusLine()
                    .getStatusCode() == 200)
            {
                // 获取服务器响应字符串
                String result = EntityUtils
                        .toString(httpResponse.getEntity());

                // 返回服务的响应字符串给客户端
                return result;
            } else {
                // 如果服务器失败返回响应数据"error"
                return "error";
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            // 关闭HttpClient
            httpClient.getConnectionManager().shutdown();
        }
        return null;
    }


}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值