android开发,http工具类

2015-07-24 11:55:06 · 作者: · 浏览: 6

android的HttpClient实现简单的get和post请求

?

[1].[代码] [Java]代码 跳至 [1]

/**

 *
 Http工具类

 */

public

class 
HttpUtil {

    //
 创建HttpClient对象

    public

static 
HttpClient httpClient = new

DefaultHttpClient();

    public

static 
final 
String BASE_URL = "";

 

    /**

     *
 get请求

     *

     *
 @param url

     *           
 发送请求的URL

     *
 @return 服务器响应字符串

     *
 @throws Exception

     */

    public

static 
String doGet(String url) throws

Exception {

        //
 创建HttpGet对象。

        HttpGet
 get = new

HttpGet(url);

        //
 发送GET请求

        HttpResponse
 httpResponse = httpClient.execute(get);

        //
 如果服务器成功地返回响应

        if

(httpResponse.getStatusLine().getStatusCode() == 200)
 {

            //
 获取服务器响应字符串

            HttpEntity
 entity = httpResponse.getEntity();

            InputStream
 content = entity.getContent();

            return

convertStreamToString(content);

        }

        return

null;

    }

 

    /**

     *
 post请求

     *

     *
 @param url

     *           
 发送请求的URL

     *
 @param params

     *           
 请求参数

     *
 @return 服务器响应字符串

     *
 @throws Exception

     */

    public

static 
String doPost(String url, Map rawParams)

            throws

Exception {

        //
 创建HttpPost对象。

        HttpPost
 post = new

HttpPost(url);

        //
 如果传递参数个数比较多的话可以对传递的参数进行封装

        List
 params = new

ArrayList();

        for

(String key : rawParams.keySet()) {

            //
 封装请求参数

            params.add(new

BasicNameva luePair(key, rawParams.get(key)));

        }

        //
 设置请求参数

        post.setEntity(new

UrlEncodedFormEntity(params, "utf-8"));

        //
 发送POST请求

        HttpResponse
 httpResponse = httpClient.execute(post);

        //
 如果服务器成功地返回响应

        if

(httpResponse.getStatusLine().getStatusCode() == 200)
 {

            //
 获取服务器响应字符串

            HttpEntity
 entity = httpResponse.getEntity();

            InputStream
 content = entity.getContent();

            return

convertStreamToString(content);

        }

        return

null;

    }

 

    /**

     *
 获取服务器的响应,转换为字符串

     */

    private

static 
String convertStreamToString(InputStream is) {

        BufferedReader
 reader = new

BufferedReader(new

InputStreamReader(is));

        StringBuilder
 sb = new

StringBuilder();

        String
 line = null;

        try

{

            while

((line = reader.readLine()) != null)
 {

                sb.append(line);

            }

        }
catch

(IOException e) {

            e.printStackTrace();

        }
finally

{

            try

{

                is.close();

            }
catch

(IOException e) {

                e.printStackTrace();

            }

        }

        return

sb.toString();

    }

}

?