`
wangking717
  • 浏览: 262497 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

HttpClient4 Post XML数据

阅读更多

最近项目中用到SOAP,要求客户端POST SOAP数据过去,整理一下自己写的东西。

 

POST XML一般有两种方法,一种是指定参数名,将该参数来进行XML数据的传输,这是最常用的一种方式。

 

这次我想说明的另外一种,直接将XML数据以流的方式写入请求。

 

Servlet POST方法中来接受传送过来的XML流:

 

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		response.setContentType("text/xml");  
		response.setCharacterEncoding("UTF-8");  
        PrintWriter out = response.getWriter();
        System.out.println("----------------------");  
        BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
        String line = null;
        StringBuffer sb = new StringBuffer();
        while ((line = reader.readLine()) != null) {
        	sb.append(line).append("\r\n");
		}
        System.out.println(sb.toString());  
        System.out.println("----------------------");  
        out.print(sb.toString());  
		out.flush();
		out.close();
	}

 

 

Client端POST XML过去:

 

package com.javaeye.wangking717.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;

public class HttpConnectionUtil {

	private final static Log logger = LogFactory.getLog(HttpConnectionUtil.class);

	public static String postSOAP(String url, String soapContent) {

		HttpClient httpclient = null;
		HttpPost httpPost = null;
		BufferedReader reader = null;
		int i = 0;

		while (i < 4) {
			try {
				httpclient = new DefaultHttpClient();
				httpPost = new HttpPost(url);
				StringEntity myEntity = new StringEntity(soapContent, "UTF-8");
				httpPost.addHeader("Content-Type", "text/xml; charset=UTF-8");
				httpPost.setEntity(myEntity);
				HttpResponse response = httpclient.execute(httpPost);
				HttpEntity resEntity = response.getEntity();
				if (resEntity != null) {
					reader = new BufferedReader(new InputStreamReader(resEntity
							.getContent(), "UTF-8"));
					StringBuffer sb = new StringBuffer();
					String line = null;
					while ((line = reader.readLine()) != null) {
						sb.append(line);
						sb.append("\r\n");
					}
					return sb.toString();
				}

			} catch (Exception e) {
				i++;
				if (i == 4) {
					logger.error("not connect:" + url + "\n" + e.getMessage());
				}
			} finally {
				if (httpPost != null) {
					httpPost.abort();
				}
				if (reader != null) {
					try {
						reader.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
				if (httpclient != null) {
					httpclient.getConnectionManager().shutdown();
				}
			}
		}
		return "none";
	}
	
	public static void main(String[] args) {
		String url = "http://localhost:8080/opgtest/servlet/MyTest";
		String soap = "<xml>\r\n"
						+ "<body>\r\n"
							+ "传递过来的内容\r\n" 
						+ "</body>\r\n"
					+ "</xml>";
		System.out.println(postSOAP(url, soap));

	}

}

 

OK,大功告成,很简单吧。

分享到:
评论
1 楼 程序员是怎么炼成的 2015-05-19  
你好,需要用到的jar包有哪些,如果用httclient4来开发的话 ,需要怎么写呢?

相关推荐

    httpclient 客户端发送xml报文到服务器端采用post方式(加密)传递

    本示例探讨的是如何使用HTTPClient库在客户端发送XML报文到服务器端,且报文通过POST方法传递,并可能涉及加密处理,确保数据的安全性。 首先,HTTPClient是Apache提供的一款强大的Java HTTP客户端API,它允许...

    java 中HttpClient传输xml字符串实例详解

    Java中的HttpClient是一个强大的HTTP客户端库,常用于与服务器进行数据交互。在本实例中,我们将讲解如何使用HttpClient来传输XML字符串。首先,我们需要确保引入了正确的依赖,包括Apache HttpClient、HttpMime、...

    HttpClient发送post请求传输json数据

    在这个场景中,我们关注的是如何使用HttpClient来发送POST请求并传输JSON数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于API接口的数据传递。 首先,我们需要引入Apache HttpClient...

    http post 发送xml数据

    与GET请求不同,POST请求的数据通常包含在请求正文中,这使得它适合传输大体积或敏感数据,如XML文档。 要实现HTTP POST发送XML数据,我们需要一个客户端库来构建和发送HTTP请求。在这个场景下,`commons-...

    httpclient post方式发送请求

    本篇文章将详细讲解如何使用HTTPClient库以POST方式发送JSON格式的数据,并介绍相关依赖包。 首先,为了使用HTTPClient库,我们需要导入Apache HttpClient相关的JAR包。在提供的文件列表中,"HttpClientJar"很可能...

    httpClient的xml,form,json提交

    在XML、form(表单数据)和JSON提交方面,HttpClient提供了一种灵活的方式将这些数据类型发送到服务器。 首先,我们来看`HttpClientUtil.java`,这是一个常见的工具类,通常包含一系列静态方法,用于简化HttpClient...

    使用HttpClient发送POST请求,并获取响应内容(附详细步骤).txt

    ### 使用HttpClient发送POST请求,并获取响应内容 #### 一、简介 在现代软件开发中,尤其是在Web应用领域,客户端与服务器之间的通信是非常重要的环节。Java作为一种广泛应用的编程语言,提供了多种方式来实现这一...

    发送Post请求,内容格式为xml,并获取响应内容

    在给定的代码片段中,主要展示了如何使用Java中的Apache HttpClient库发送一个包含XML数据的POST请求,并接收响应。下面是对关键部分的详细分析: 1. **导入必要的库**:代码首先导入了处理网络请求、输入输出流...

    Java后端HttpClient Post提交文件流 及服务端接收文件流

    HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。

    httpclient4

    - **API调用**:对于RESTful API,HttpClient 是一个理想的客户端工具,可以方便地发送JSON或XML数据。 - **文件上传下载**:通过POST或PUT请求,HttpClient 可以实现文件的上传,通过GET请求实现文件的下载。 - ...

    httpclient实现跨项目数据交互

    `Httpclient` 是一个强大的工具,可以实现跨项目间的数据通信。本文将深入探讨如何使用 `Httpclient` 进行HTTP请求,实现不同项目之间的数据交换。 `Httpclient` 是Apache HttpClient库,它为Java开发者提供了全面...

    httpClient4jar包

    在描述中提到的“httpclient4”,指的是HttpClient 4.x系列,这是一个稳定且广泛使用的版本。 在HttpClient 4.4.1.jar中,包含了HttpClient的主要功能实现,如HTTP方法(GET, POST等)、连接管理、重定向处理、身份...

    HttpClient模拟get,post请求并发送请求参数(json等)

    HttpClient还支持其他高级功能,如重试策略、Cookie管理、多部分表单数据上传等。在实际项目中,我们通常会封装一个HttpClientUtil工具类,以简化请求的创建和执行过程。 例如,一个简单的HttpClientUtil工具类可能...

    httpClient httpPost httpGet 所需jar包

    4. 所需jar包:使用HttpClient、HttpPost和HttpGet需要引入以下核心jar包: - `httpclient.jar`:包含HttpClient的主要实现,提供了基本的HTTP通信功能。 - `httpcore.jar`:HttpClient的核心组件,提供了HTTP协议...

    httpClient4 最新帮助文档

    最新帮助文档通常会涵盖HttpClient 4的主要功能、用法、配置、异常处理以及最佳实践。以下是对HttpClient 4的一些关键知识点的详细解释: 1. **基本概念**: - HttpClient:HttpClient是客户端HTTP服务端点的抽象...

    httpclient发送post请求.docx

    这里我们详细探讨一下如何使用`HttpClient`发送POST请求,以及这个过程中的关键知识点。 首先,我们创建一个`CloseableHttpClient`对象,这相当于在编程环境中模拟了一个浏览器。`HttpClients.createDefault()`方法...

    HttpClient的简单使用,get、post、上传、下载

    总结,HttpClient是Java中强大的HTTP客户端工具,通过它我们可以方便地实现各种HTTP操作,包括简单的GET、POST请求,以及复杂的文件上传和下载。结合服务端的处理,可以构建出完整的网络通信解决方案。在实际使用中...

    HttpClient发送http请求(post+get)需要的jar包+内符java代码案例+注解详解

    以下是一个使用HttpClient发送POST请求的Java代码示例: ```java import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import...

    (最新)HttpClient4模拟登录腾讯微博

    HttpClient4库提供了丰富的API,可以定制化地构造HTTP请求,包括设置方法(GET、POST等)、添加请求头、携带Cookie、处理重定向以及上传下载数据等。在模拟登录过程中,通常需要设置POST请求,填充登录表单数据,如...

Global site tag (gtag.js) - Google Analytics