使用HTTP协议访问网络

在Android上发送http请求有2种方式,分别由两个类完成,HttpURLConnection和HttpClient.

一、使用HttpURLConnection方式

  1.1 建立连接的基本步骤

    1 创建一个URL对象,例如:

      URL url = new URL("http://www.baidu.com");

    2 获取HttpURLConnection对象

      HttpURLConnection connection = (HttpURLConnecton)URL.openConnection();

    3 设置HTTP请求方式,常用的方式有“GET”和“POST”两种。

      connection.setRequestMethod("GET");

    4 设置一些其他参数,例如连接超时,读取超时的时间,例:

      connection.setConnectionTimeout(8000);

      connection.setReadTimeOut(6000);

    5 调用getInputStream()方法获取到服务器返回的一个输入流,然后读取数据。

二、使用HttpClient

  HttpClient是Apache提供的HTTP访问接口,其是一个接口,通常无法直接创建它的示例,HttpClient的基本使用步骤如下:

  1、通常创建一个DefaultHttpClient的实例,如下:

    HttpClient httpClient = new DefualtHttpClient();

  2、如果是发起一条GET请求,则创建一个HttpGet对象,并传入目标网络地址,然后调用HttpClient的execute()方法,如下:

    HttpGet httpGet = new HttpGet("http://www.baidu.com");

    httpClient.execute(httpGet);

    如果是发起一条POST请求,需要创建HttpPost对象,传入目标地址,然后通过NameValuePair集合来存放待提交参数,并将这个参数集合传入到一个UrlEncodeFormEnty中,然后通过HttpPost的setEntity方法将构建好的UrlEncodeFormEntity传入,最后调用HttpClient的execute()方法,并传入HttpPost对象。如下:

  HttpPost httpPost = new HttpPost("http://www.baidu.com");

  List<NameValuePaire> list = new ArrayList<NameValuePair>();

  list.add(new BasicNameValuePair("username","admin"));

  list.add(new BasicNameValuePair("password","123456"));

  UrlEncodeFormEntity entity = new UrlEncodeFromEntity(list,"utf-8");

  httpPost.setEntity(entity);

  httpClient.execute(httpPost);

 

posted @ 2017-02-05 16:16  花臣酒卒  阅读(815)  评论(0编辑  收藏  举报