HttpClient请求

1、背景java

  公司有一个需求,就是以前的那个webservice实现的那个模块用http请求的方式实现.jar包下载地址http://files.cnblogs.com/files/antonyhubei/httpclient_jar.zipweb

2、介绍Http请求api

  HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工做小组IETF(Internet Engineering Task Force)合做的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天广泛使用的一个版本——HTTP 1.1。数组

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可使浏览器更加高效,使网络传输减小。它不只保证计算机正确快速地传输超文本文档,还肯定传输文档中的哪一部分,以及哪部份内容首先显示(如文本先于图形)等。浏览器

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。服务器

3、如何执行一个Http请求网络

一、建立一个客户端,同时配置响应的参数ide

//建立一个客户端
HttpClient client = new HttpClient(); 
//主机的配置信息
HostConfiguration hostConfig = new HostConfiguration();
//ip 地址,port端口
hostConfig.setHost(ip, port); 
//客户端主机的配置
client.setHostConfiguration(hostConfig);
//其余的客户端参数
HttpClientParams params = new HttpClientParams();
//编码
params.setContentCharset("utf-8");
//是不是长链接
params.setParameter("Connection", "keep-alive");
//设置请求链接超时时间为5秒
params.setConnectionManagerTimeout(5*1000);
//测试
params.setSoTimeout(5000);
client.setParams(params);
PostMethod method = new PostMethod();
method.setRequestHeader("Connection", "Keep-Alive");

二、准备要发送的参数,多是一个数组测试

//设置请求的url
URI uri = new URI("/epgs/api/setSyncCode",true,"utf-8");
method.setURI(uri);
//设置请求的参数(数组)
NameValuePair[] params = new NameValuePair[] {
                    new NameValuePair("syncCode", syncCode)
            };
method.setRequestBody(params);
//设置请求头(防止有时候参数的位数会有问题)
method.setRequestHeader("Content-Length", String.valueOf(method.getRequestEntity().getContentLength()));  

三、发送Http请求编码

client.executeMethod(method);

四、获取响应的状态码和响应的数据进行分析并执行下一步的操做

 //请求返回200
if (method.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
     //获取服务器响应的数据
     String result = method.getResponseBodyAsString();
     if (result.equals("true")) {
	ret = true;
	} else {
		ret = false;
	}
 }        
相关文章
相关标签/搜索