`
sundful
  • 浏览: 1251284 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HttpClient4 Post/Put XML到一个服务器上

阅读更多

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(); 
                } 
        } 
}

 

2、不指定参数名的方式来POST数据

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
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.message.BasicNameValuePair; 
import org.apache.http.entity.*; 


import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.List; 

/** 
* 不指定参数名的方式来POST数据 
* 
* @author leizhimin 2010-7-8 3:22:53 
*/ 
public class TestPostXml { 
        public static void main(String[] args) throws IOException { 
                HttpClient httpclient = new DefaultHttpClient(); 
                HttpPost httppost = new HttpPost("http://localhost:8080/waitsrv/GenXmlServlet"); 
                StringEntity myEntity = new StringEntity("<html>你好啊啊</html>", "GBK"); 
                httppost.addHeader("Content-Type", "text/xml"); 
                httppost.setEntity(myEntity); 
                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(); 
        } 
}

 

服务端接收方式:

package com; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.PrintWriter; 

/** 
* 接收XLM请求 
* 
* @author leizhimin 2010-7-8 1:02:42 
*/ 
public class GenXmlServlet extends HttpServlet { 
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
//                String xml = req.getParameter("xmldata"); 
                resp.setContentType("text/xml"); 
                resp.setCharacterEncoding("GBK"); 
                PrintWriter out = resp.getWriter(); 
//                out.println(xml); 
//                System.out.println(xml); 
                System.out.println("----------------------"); 
                InputStreamReader reader = new InputStreamReader(req.getInputStream(), "GBK"); 
                char[] buff = new char[1024]; 
                int length = 0; 
                while ((length = reader.read(buff)) != -1) { 
                        String x = new String(buff, 0, length); 
                        System.out.println(x); 
                        out.print(x); 
                } 
        } 

        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
                resp.setContentType("text/html"); 
                PrintWriter out = resp.getWriter(); 
                out.println("<html>"); 
                out.println("<head>"); 
                out.println("<title>Hello World!</title>"); 
                out.println("</head>"); 
                out.println("<body>"); 
                out.println("<h1>Hello World!!</h1>"); 
                out.println("</body>"); 
                out.println("</html>"); 
        } 
}

 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
                 version="2.5"> 

        <servlet> 
                <servlet-name>GenXmlServlet</servlet-name> 
                <servlet-class>com.GenXmlServlet</servlet-class> 
        </servlet> 
        <servlet-mapping> 
                <servlet-name>GenXmlServlet</servlet-name> 
                <url-pattern>/GenXmlServlet</url-pattern> 
        </servlet-mapping> 
</web-app>

 

分享到:
评论

相关推荐

    httpClient的xml,form,json提交

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

    httpclient4

    Java HttpClient 4,也称为Apache HttpClient 4,是Apache软件基金会开发的一个HTTP客户端实现库,用于处理与HTTP服务器的交互。这个库在Java编程环境中广泛使用,尤其对于网络请求的发送和响应的处理,提供了强大而...

    httpClient4jar包

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

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

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

    HttpClient Post 二进制/字节流/byte[]实例代码

    在HttpClient 3.x版本中,我们使用`HttpClient`类来创建一个HTTP客户端实例,然后通过`PostMethod`类来构建POST请求。以下是一个简单的例子: ```java public class HttpHelper { private String m_url; private ...

    httpClient4 最新帮助文档

    HttpClient 4 是一个由 Apache 软件基金会开发的Java库,用于执行HTTP请求并处理响应。这个库在Web服务和API交互、自动化测试、数据抓取等场景中广泛应用。最新帮助文档通常会涵盖HttpClient 4的主要功能、用法、...

    httpclient Demo

    在HttpClient请求中,如果服务器返回XML响应,可以使用DOM4J解析和操作XML数据。例如: ```java Document document = DocumentHelper.parseText(response.getEntity().getContent()); Element rootElement = ...

    HttpClient 调用WebService示例

    2. **创建HttpClient实例**: 要开始使用HttpClient,你需要创建一个`CloseableHttpClient`对象。例如: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 3. **构建HttpPost请求**: ...

    httpClient4.1入门教程.

    HttpClient 是一个强大的开源 Java 客户端 HTTP 框架,源自 Apache Jakarta Common。它为开发者提供了高效、灵活且功能丰富的工具,以实现与 HTTP 服务器的交互。HttpClient 支持 HTTP/1.1 和部分 HTTP/2 规范,同时...

    Titanium中Httpclient访问REST 服务

    在IT行业中,开发移动应用时常会涉及到与服务器的交互,其中HTTP客户端是实现这一功能的重要工具。本主题将深入探讨如何在Titanium框架中使用HttpClient访问REST服务,这对于构建跨平台的移动应用至关重要。 ...

    HttpClient发送json、普通参数类型的Post请求(csdn)————程序.pdf

    下面是一个完整的Java类,演示了如何使用HttpClient发送JSON和普通参数的POST请求: ```java import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair;...

    android httpclient demo

    4. **DELETE请求**:DELETE请求用于删除服务器上的资源。使用`HttpDelete`类创建: ```java HttpDelete httpDelete = new HttpDelete("http://example.com/resource"); response = httpClient.execute(httpDelete);...

    commons-httpclient-3.1.jar

    Apache HttpClient 3.1是该库的一个稳定版本,提供了丰富的API,使得开发者可以方便地执行HTTP请求,包括GET、POST、PUT等方法,并处理响应。这个库不仅支持基本的HTTP操作,还支持HTTPS、代理设置、Cookie管理、...

    WebApi系列-通过HttpClient来调用WebApi接口.doc

    与POST不同,PUT方法通常需要两个参数:一个标识要更新的资源的ID,另一个是包含新数据的对象。前者通常通过查询字符串传递,后者则通过`FromBody`标记。 示例: ```csharp public IHttpActionResult Put(int id, ...

    httpclient http客户端

    2. 请求和响应处理:HttpClient允许创建各种HTTP请求(GET、POST、PUT、DELETE等),并能解析和处理服务器返回的HTTP响应,包括状态码、头部信息和响应体。 3. 连接管理:HttpClient管理HTTP连接,包括重用连接、...

    使用HttpClient必须的jar包

    HttpClient是Apache基金会开发的一个Java库,它提供了对HTTP协议的强大支持,使得开发者可以在Java应用程序中方便地进行HTTP通信。在Java项目中使用HttpClient时,为了确保功能的完整性和正确性,通常需要引入一系列...

    httpClient需要的jar包

    8. **Cookie管理**:HttpClient有一个内置的Cookie管理器,可以处理服务器返回的Cookie,并在后续请求中自动发送。 9. **拦截器**:HttpClient允许你插入请求和响应拦截器,可以在发送请求前或接收响应后进行自定义...

    httpclient

    在Java应用中,HttpClient是一个常用的工具,特别适合于需要与Web服务器交互的情况。 HttpClient 4.5.2是该库的一个稳定版本,它包含了对HTTP/1.1和部分HTTP/2协议的支持。这个版本修复了一些已知的问题,提升了...

    httpClient完整请求Demo

    首先,我们需要创建一个HttpClient实例。这通常在程序开始时完成,因为HttpClient是线程安全的,可以重复使用。 ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 2. **创建HttpGet或...

Global site tag (gtag.js) - Google Analytics