《第一行代码-Android》学习笔记(二十二)

一.HttpURLConnection学习

1.new出一个URL对象:

2.利用URL的实例方法:openConnection()获取到URLConnection对象,再向下强制转换为HttpURLConnection对象。

代码:

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

connection = (HttpURLConnection) url.openConnection();

//GET表示希望从服务器获取数据,POST表示提交数据给服务器。

connection.setRequestMethod(GET);

connection.setConnectTimeout(6000);

connection.setReadTimeout(8000);

InputStream inputStream = connection.getInputStream();

//对获取的流进行包装处理

BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

StringBuffer result = new StringBuffer();

String line = "";

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

     result.append(line);

}

reader.close();

 

3.POST请求,如何提交数据:

 connection.setRequestMethod("POST");

 DataOutputStream outputStream=new DataOutputStream(connection.getOutputStream());

 //提交的数据是以键值对的形式存在的,数据与数据之间以&隔开

 outputStream.writeBytes("username=admin&password=123456");

二.HttpClient学习

HttpClientApache提供的HTTP网络访问接口,可以实现和HttpURLConnection一样的效果,但是二者的用法大不一样。

1.Get请求:

a) 创建一个HttpClient实例,由于HttpClient是一个接口,一般创建一个DefaultHttpClient实例:

HttpClient httpClient = new DefaultHttpClient();

b) GET请求创建一个HttpGet对象,并传入目标网络地址:

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

c) 调用HttpClientexecute()方法,获得一个HttpResponse对象:

HttpResponse httpResponse = httpClient.execute(httpGet);

d) 判断返回码是不是200

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

e) 获取HttpEntity,并获取到里面内容:

HttpEntity httpEntity = httpResponse.getEntity();

      //利用EntityUtils的类方法,可以解析httpEntity对象,并设置编码格式

   String result = EntityUtils.toString(httpEntity, "utf-8");

2.POST请求:

a) 创建一个HttpClient实例,由于HttpClient是一个接口,一般创建一个DefaultHttpClient实例:

HttpClient httpClient = new DefaultHttpClient();

b) POST请求创建一个HttpPost对象,并传入目标网络地址:

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

c) 通过NameValuePair集合来存放待提交的数据,并将集合出入到UrlEncodedFormEntity中,然后调用HttpPostsetEntity()方法将UrlEncodedFormEntity传入:

List<NameValuePair> params = new ArrayList<NameValuePair>();

params.add(new BasicNameValuePair("user", "admin"));

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

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, "utf-8");

httpPost.setEntity(entity);

d) 调用HttpClientexecute()方法,获得一个HttpResponse对象:

httpClient.execute(httpPost);

e) .....下面的处理和get请求相同

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值