HttpClient4 Post XML到一个服务器上

现在网上介绍的HttpClient基本上全是3.x版本的内容,HttpClient4的API变化相对3已经变化很大, 对HttpClient4做了简单的研究后,完成了一个HttpClient4 Post XML功能。

对于POST方式,最先想到的就是表单提交了,POST XML自然想到的就是定义一个变量名,比如叫 xmldata,然后将这个参数的值POST出去,在服务端接收的时候,自然也是通过 requset.getParameter ("xmldata")方式来接收。

现在我在这里要做的不是通过上面的方式,而是不指定参数名来Post,实际上就是将一个流写入请求 。

下面是具体的实现方式:

1、参数名方式POST XML数据

import org.apache.http.*;
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.message.BasicNameValuePair;
import org.apache.http.client.*;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.*;
/**
* 通过指定参数名的方式POST XML
*
* @author leizhimin 2010-7-8 22:29:28
*/
public class TestPost {
         public static void main(String[] args) throws IOException {
                 HttpClient httpclient = new DefaultHttpClient();
                 HttpPost httppost = new HttpPost ("http://localhost:8080/waitsrv/GenXmlServlet");
                 List<NameValuePair> formparams = new  ArrayList<NameValuePair>();
                 formparams.add(new BasicNameValuePair("xmldate",  "<html>你好啊啊</html>"));
                 formparams.add(new BasicNameValuePair("info",  "xxxxxxxxx"));
                 UrlEncodedFormEntity entity = new  UrlEncodedFormEntity(formparams, "GBK");
//                entity.setContentType("text/xml; charset=GBK");
                 httppost.setEntity(entity);
                 HttpResponse response = httpclient.execute (httppost);
                 HttpEntity resEntity = response.getEntity();
                 InputStreamReader reader = new InputStreamReader (resEntity.getContent(), "ISO-8859-1");
                 char[] buff = new char[1024];
                 int length = 0;
                 while ((length = reader.read(buff)) != -1) {
                         System.out.println(new String(buff, 0,  length));
                         httpclient.getConnectionManager ().shutdown();
                 }
         }
}

时间: 2024-10-31 21:27:18

HttpClient4 Post XML到一个服务器上的相关文章

asp.net-项目在一个服务器上要下载的文件在另外一个服务器上如何下载

问题描述 项目在一个服务器上要下载的文件在另外一个服务器上如何下载 项目部署在这个服务器上,而需要下载的文件存放在另外一个服务器上面,怎么想在,还有我想在下载的时候弹出一个类似迅雷下载的框,能够自定义文件存放路径和文件名称.求帮助 解决方案 你要想直接远程下载文件是不行的,只能让那个存放文件的服务器提供一个url下载地址,然后你去请求改地址下载,或者存放在远程服务器的数据库中,你通过请求远程数据库下载. c#中下载远程文件有两种方法,利用WebClient 或者WebRequest,具体可以在网

服务器文件自动备份到另一个服务器上

问题描述 服务器文件自动备份到另一个服务器上 各位大神帮忙求解,前段时间我的一台服务器上的东西糟到而已删除, 现在想进行每天定时自动备份到另一台服务器上,以免悲剧再次发生, 自动备份的资料保留5天后自动删除,怎么做?非常感谢! 解决方案 httpclient从一个服务器传送文件到另一个服务器服务器文件自动备份工具另一个用libevent实现的echo服务器 解决方案二: 通过rsync等来在服务器之间备份同步http://www.cnblogs.com/itech/archive/2009/08

XML入门教程:服务器上的XML

xml|服务器|教程|入门教程 XML可以在不安装任何XML控件的情况下在服务器端生成. 在服务器上存储XML XML文件可被存储在服务器上,和HTML文件的存储方式是完全相同的. 启动Windows记事本,并编写以下代码行: <?xml version="1.0" encoding="ISO-8859-1"?><note> <from>Jani</from> <to>Tove</to> <

sql-在一个服务器上访问另一个服务器出现的问题

问题描述 在一个服务器上访问另一个服务器出现的问题 if exists(select 1 from master..sysservers where srvname='srv_lnk2') exec sp_dropserver 'srv_lnk2','droplogins' go --创建链接服务器 exec sp_addlinkedserver 'srv_lnk2','','SQLOLEDB','192.168.0.99' --这步提示"不能在具有唯一索引 'sysxlogins' 的对象 '

能不能用filesystemobject编写一个服务器上的资源管理器?

filesystemobject|服务器 其实可以这样left frame: use filesystemobject function list all folder on server; use DHTML or treeview display them onclick call display.asp?foldername the code is like this:================================<%@ LANGUAGE = VBScript %>&l

ASP跨服务器上传文件完美解决

服务器|解决|上传 如果你有两个空间,一个大而慢,另外一个小而快,或者其中一个不支持FSO,那么跨服务器上传文件这个问题就摆在你面前了,下面就是我在解决ylog.net里面的跨服务器上传文件的日记,这个问题看似简单,里面的细节问题却是非常有趣 前提条件,空间都必须支持ASP,上传文件的服务器支持FSO,下面的叙述中,diygame.com为存上传文件的服务器,ylog.net为网站服务器,即显示用户界面的服务器... 实现功能,文件上传,上传后在网页的文本区域自动加上对于图片的UBB码,为了清楚

上传图片,如何请求转发到动态ip的服务器上

问题描述 上传图片,如何请求转发到动态ip的服务器上 我的需求是: 通过网页或者手机通过http post上传一个图片,后台servlet接收到该HttpServletRequest实例后,根据一个工具类算法获取到处理给请求的服务器ip,然后将这个http request发送给该ip的服务器. 然后由该ip的服务器获取到网页或者手机上传的图片,存储到该服务器的本地磁盘上. 请问该怎样实现请求的转发呢? 我曾经考虑过使用jsp的forward,但forward只能转发到当前的servlet容器,而

java代码-用java实现从不同服务器上下载的table进行比较与覆盖

问题描述 用java实现从不同服务器上下载的table进行比较与覆盖 图片如果看不到,请进我空间的相册查看.java:从不同的服务器上下载test table,然后将其中一个服务器的table覆盖到另外一个服务器上的table,要求table里面的属性能够更改(如string->int),保留原有的数据,本人菜鸟级别,第一次配到这样的难题,求各位大神给代码提示

关于weblogic 管理端口及程序发布端口可否在weblogic 管理服务器上分开

问题描述 各位大侠,我有个客户,希望在weblogic管理服务器上把管理端口与程序发布端口分开,能实现吗希望各位达人帮忙解答,谢谢啊 解决方案 解决方案二:可以..域部署就是了.我现在系统就是一个服务器上一个管理server,4-5个应用server.多实例域部署解决方案三:将管理server的管理端口和应用端口分开很简单,在控制台中点击你的域->锁定并编辑->勾上启用管理端口,在下面的管理端口写自己想要的管理端口就行了