同步助手项目之封装Http帮助类

步骤:

1.新建一个包com.tb.http.request

2.新建一个类HttpRequestUtil

3.在类里面写方法:

A.因为是从客户端向服务端请求,所以返回的是JSON格式,而这里就可以返回String

方法中需要传入的参数:String uri , List<NameValuePair> parameters(简单名称值对节点类NameValuePair

B.得到一个HttpClient对象HttpClient client = new DefaultHttpClient();

C.得到一个HttpPost请求对象HttpPost request = new HttpPost(uri);

D.请求实体HttpEntity也是一个接口,我们用它的实现类UrlEncodedFormEntity来创建对象,注意后面一个String类型的参数是用来指定编码的。HttpEntity entity = new UrlEncodedFormEntity(parameters, "UTF-8");

E.将参数对象绑定到请求对象当中request.setEntity(entity);

F.通过HttpClient执行请求,返回一个HttpResponse响应对象

HttpResponse response = client.execute(request);

G.判断响应是否成功:如果成功,使用HttpEntity‚的一个帮助类 (EntityUtil)把服务器返回的数据(从响应中获取消息实体)转化为字符串,并返回该字符串。否则,返回空。

EntityUtils.toString() (这个方法能避免中文乱码)

HttpClientApache开源组织提供的一个开源的项目,从名字上就可以看出,它是一个简单的HTTP客户端(并不是浏览器),可以发送HTTP请求,接受HTTP响应。但是不会缓存服务器的响应,不能执行HTTP页面中签入嵌入的JS代码,自然也不会对页面内容进行任何解析、处理,这些都是需要开发人员来完成的。

HttpClient其实是一个interface类型,HttpClient封装了对象需要执行的Http请求、身份验证、连接管理和其它特性。从文档上看,HttpClient有三个已知的实现类分别是:AbstractHttpClient, AndroidHttpClient, DefaultHttpClient,会发现有一个专门为Android应用准备的实现类AndroidHttpClient,当然使用常规的DefaultHttpClient也可以实现功能,但是既然开发的是Android应用程序,还是使用Android专有的实现类,一定有其优势。

 

‚HttpEntity实体即可以使流也可以使字符串形式。

 try {  

1.             HttpEntity entity = new StringEntity("这一个字符串实体", "UTF-8");  

2.             //内容类型  

3.             System.out.println(entity.getContentType());  

4.             //内容的编码格式  

5.             System.out.println(entity.getContentEncoding());  

6.             //内容的长度  

7.             System.out.println(entity.getContentLength());  

8.             //把内容转成字符串  

9.             System.out.println(EntityUtils.toString(entity));  

10.             //内容转成字节数组  

11.             System.out.println(EntityUtils.toByteArray(entity).length);  

12.             //还有个直接获得流  

13.             //entity.getContent();  

14.         } catch (UnsupportedEncodingException e) {  

15.             throw new RuntimeException(e);  

16.         } catch (ParseException e) {  

17.         } catch (IOException e) {  

18.         }  

 



具体代码:

package com.tb.http.request;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;

import org.apache.http.HttpEntity;
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.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

public class HttpRequestUtil {

	public String HttpPostRequest(String uri,List<NameValuePair> parameters){
		String JsonStr=null;
		try {
			HttpClient client=new DefaultHttpClient();
			HttpPost request =new HttpPost(uri);
			HttpEntity entity=new UrlEncodedFormEntity(parameters,"utf-8");
			request.setEntity(entity);
			HttpResponse response=client.execute(request);
			if(response.getStatusLine().getStatusCode()==200){
				JsonStr=EntityUtils.toString(response.getEntity());
			}
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return JsonStr;
		
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值