Httpclient 3.1和httpclient 4.1 在post请求中的不同。
下面的示例将httpclient请求模拟webservices请求。
3.1 包名:commons-httpclient-3.1.jar
public static EnvelopeDocument call(String soapString, String endpoint, int timeout)
throws SOAException
{
EnvelopeDocument resDoc = null;
PostMethod post = null;
HttpClient httpclient = new HttpClient();
try
{
HttpClientParams params = new HttpClientParams();
params.setSoTimeout(timeout * 1000);
httpclient.setParams(params);
post = new PostMethod(endpoint);
org.apache.commons.httpclient.methods.RequestEntity entity = new StringRequestEntity(soapString, "text/xml", "UTF-8");
post.setRequestEntity(entity);
int result = httpclient.executeMethod(post);
String res;
if(result != 200)
{
res = post.getResponseBodyAsString();
throw new SOAException(ErrorCode.CALL_WEB_SERVICE_ERROR, "Web Service Server returns HTTP code " + result + "\n" + res);
}
res = post.getResponseBodyAsString();
try
{
resDoc = org.xmlsoap.schemas.soap.envelope.EnvelopeDocument.Factory.parse(res);
}
catch(XmlException xe)
{
throw new SOAException(ErrorCode.PARSE_RESPONSE_XML_ERROR, "Parsing web service response soap message error", xe);
}
}
catch(SOAException e)
{
e.printStackTrace();
throw e;
}
catch(Exception e)
{
e.printStackTrace();
throw new SOAException(ErrorCode.CALL_WEB_SERVICE_ERROR, "call web service error" + e.getMessage(), e);
}
return resDoc;
}
4.1 包名:httpclient-4.1.jar
public static String requestWebservice(String url, String xmlParam)
throws ClientProtocolException, IOException {
Validate.notNull(url, "请求url");
Validate.notNull(xmlParam, "符合webservice标准的xml字符串");
String responseContent = "";
HttpClient httpClient = new DefaultHttpClient();
byte[] b = xmlParam.getBytes("utf-8");
HttpPost httpPost = new HttpPost(url);
if (url.indexOf("RushRepairService") != -1) {
b = xmlParam.getBytes("GBK");
}
InputStream is = new ByteArrayInputStream(b, 0, b.length);
HttpEntity re = new InputStreamEntity(is, b.length);
httpPost.setEntity(re);
HttpResponse response = httpClient.execute(httpPost);
if (200 != response.getStatusLine().getStatusCode()) {
throw new RuntimeException("http返回状态"
+ response.getStatusLine().getStatusCode());
}
HttpEntity entity = response.getEntity();
String inputLine = "";
InputStreamReader in = new InputStreamReader(entity.getContent());
BufferedReader reader = new BufferedReader(in);
while ((inputLine = reader.readLine()) != null) {
responseContent += inputLine;
}
reader.close();
httpClient.getConnectionManager().shutdown();
return responseContent;
}
如有任何疑问可扫码头像关注公众号!
分享到:
相关推荐
HttpClient 4.3引入了一个新的构建器模式,这使得配置更加灵活和方便: ```java CloseableHttpClient httpClient = HttpClients.custom() .setDefaultRequestConfig(RequestConfig.custom() .setConnectTimeout...
- **HTTP请求**:HttpClient用于构建和发送HTTP请求。 - **HTTP响应**:描述了对来自服务器的响应的处理,包括读取状态行、头部信息和主体内容。 - **操作消息头**:说明了如何使用HttpClient来设置和获取HTTP消息头...
根据给定文件内容,本教程主要涉及HttpClient4.5.1的使用方法和相关知识点,这是一款广泛应用于Java编程语言中,用于发送HTTP请求和接收HTTP响应的客户端库。下面将详细介绍这些内容。 1.HttpClient基础 1.1 请求...
HttpClient允许开发者创建并发送这些请求,支持自定义请求头、设置请求参数等功能。 - **HTTP响应**: HTTP响应包含了一个状态码(如200表示成功)、响应头以及可能的响应体。了解如何解析和处理这些响应是至关重要的...
### httpclient 4.5 API文档知识点概览 #### 一、基础知识 ##### 1.1 请求执行 **1.1.1 HTTP请求** - **定义**:HTTP客户端通过发送HTTP请求来与服务器进行交互。 - **组成**: - 方法(GET、POST等); - URI...
### HttpClient 使用指南知识点详解 #### 一、概述与基本概念 **1.1 请求执行** - **1.1.1 HTTP请求**: 在客户端发起...通过这些知识点的学习,可以更好地理解和掌握HttpClient的工作原理及其在实际开发中的应用。
- **多线程请求执行:** HttpClient支持并发执行多个请求,这需要有效的连接管理和同步机制。 **2.4 多线程请求执行:** 在高并发场景下,合理利用多线程可以显著提升性能。 **2.5 连接驱逐策略:** 为了防止连接...
1.1.1 HTTP请求:HttpClient支持创建和配置HTTP请求,包括GET、POST、PUT、DELETE等方法。 1.1.2 HTTP响应:处理从服务器返回的响应,理解响应码和响应体。 1.1.3 消息头处理:工作消息头,了解如何设置和获取...
### WebApi系列-通过HttpClient来调用WebApi接口 #### 一、概述 在现代Web开发中,Web API已经成为一种非常流行的模式,用于提供服务端与客户端之间的数据交互。随着.NET Framework以及.NET Core的发展,微软提供...
### httpClient实用指南知识点详解 #### 一、概述与基本概念 **标题与描述解析:** ...对于开发者来说,深入理解这些概念和技术能够帮助他们在实际项目中更加高效地使用`httpClient`进行网络通信。
### Apache HttpClient 4 教程知识点总结 #### 一、基础知识 ##### 1.1 请求执行 **1.1.1 HTTP请求** ...无论是基础的请求/响应处理还是高级的连接管理和状态管理,HttpClient都能提供全面的支持。
- HTTPClient允许在请求过程中中止请求,这对于处理长时间运行的请求或取消不再需要的请求非常有用。 **1.5 HTTP协议拦截器** - 协议拦截器允许开发者在请求或响应的生命周期中插入自定义逻辑,从而实现更复杂的...
HttpClient4组件极大地简化了Web浏览器和WebService客户端的开发工作,使得开发者可以更专注于业务逻辑而不是底层网络通信细节。 #### 四、安装与配置 ##### 4.1 下载依赖库 - **HttpClient核心库**:下载`...
通过以上内容,我们可以看出,`HttpClient`不仅提供了基本的HTTP请求和响应处理能力,还深入到了连接管理、状态管理、认证等多个方面,旨在为开发者提供一个强大而灵活的工具集,以便于开发出高质量的HTTP客户端应用...
释放底层资源:讲解如何确保在请求和响应处理完成后,底层的资源被适当地释放,防止内存泄漏。 1.1.6. 消费实体内容:理解如何读取响应消息体中的内容。 1.1.7. 产生实体内容:学习如何构造和发送请求消息体。 ...