`

java发送Http请求传送xml数据,并返回xml数据

    博客分类:
  • XML
阅读更多
客户端发送请求、以及处理服务端响应代码为:
//发送xml请求
        URL url = new URL("http://127.0.0.1:8080/Test/sendXmlAndReturnXml.do");
        String xml = "<aaa><ddd>cccccc客户端请求的xml数据cccccccc</ddd></aaa>";
        URLConnection conn = null;
        conn = url.openConnection();
        conn.setUseCaches(false);
        conn.setDoInput(true);
        conn.setDoOutput(true);
        conn.setRequestProperty("Content-Length", Integer.toString(xml.length()));
        conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
        OutputStream ops = conn.getOutputStream();
        OutputStreamWriter osw = new OutputStreamWriter(ops, "GBK");
        osw.write(xml);
        osw.flush();
        osw.close();

        //发送成功后,获取服务器的响应xml串:
        StringBuffer sb = new StringBuffer();
        String line = "";
        InputStream is = conn.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));//三层包装
        while ((line = br.readLine()) != null) {
            sb.append(line+ "\r\n");
        }
        System.out.println(sb.toString());

服务端代码为:
@Controller
public class TestXMLAction {
    @RequestMapping("/sendXmlAndReturnXml.do")
    public void sendXmlAndReturnXml(HttpServletRequest request, HttpServletResponse response) throws IOException{
        //获取请求的xml
        System.out.println("请求的xml数据为:\n" + getXmlFromRequest(request));
        //服务端响应xml数据
        response.getWriter().print("<aaa><ddd>bbbccc服务端返回响应xml数据,在客户端可以获取到</ddd></aaa>");
    }
    
    //从HTTP请求中取出请求的XML
    private String getXmlFromRequest(HttpServletRequest request)throws IOException {
        String reqXml = "";
        reqXml = request.getQueryString(); //GET请求
        if (StringUtils.isBlank(reqXml)) { //POST请求
            BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
            String line = null;
            StringBuilder sb = new StringBuilder();
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }
            br.close();
            reqXml = sb.toString();
        }
        return reqXml;
    }
}
分享到:
评论

相关推荐

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

    至此,我们已经成功地使用Java的HttpClient库将一个对象转换为XML字符串,并以二进制流的方式发送到了服务器。这个过程中涉及的关键技术包括对象到XML的转换(JAXB)、流操作(ByteArrayOutputStream和...

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

    首先,HTTPClient是Apache提供的一款强大的Java HTTP客户端API,它允许开发者发送HTTP请求并接收响应,支持各种HTTP方法,如GET、POST等。在本场景中,我们关注的是POST方法,它是HTTP协议中用于传输大量数据的一种...

    AJAX 想Struts2后台传送Json数据并向前台返回Json格式的数据

    例如,使用jQuery的`$.ajax`或`$.getJSON`方法,构建一个请求,将JSON对象作为数据发送,并设置请求类型为'POST'或'GET'。 接下来,我们将深入探讨如何实现AJAX和Struts2之间的JSON交互: **前端(客户端)实现**...

    Flex+java+bluzeds反向传送,正向数据传送与配置与实例

    数据来源于`moviemodel.movieList.subPointedDataList`,这是通过BlazeDS从Java服务端获取并绑定到图表的。`showDataTips="true"`使得鼠标悬停在柱状图上时显示详细数据提示。 通过以上讲解,我们可以看到Flex+Java...

    模拟Http请求

    通过`executeMethod`方法发送请求,并检查响应状态码是否为200(OK),如果是,则返回响应体。 #### 3. 发送POST请求 同样地,`doPost`方法展示了如何使用Apache HttpClient发送POST请求。 ```java public static...

    ajax请求serlvet传送汉字

    Ajax通过JavaScript创建XMLHttpRequest对象来实现这一功能,而Servlet是Java Web应用中的一个组件,用于处理来自客户端的请求并返回响应。 在Ajax请求中发送汉字,需要关注字符编码问题。默认情况下,Ajax请求的...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    这是一个质的区别:网页将数据和显示混在一起,而XML则将数据和显示分开来。 我们看上面的例子,在myfile.htm中,我们只关心页面的显示方式,我们可以设计不同的界面,用不同的方式来排版页面,但数据是储存在...

    Ajax实现Json数据传送

    - **发送请求**:将数据序列化为JSON格式并发送。 ```javascript var data = {key: 'value'}; xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(JSON.stringify(data)); ``` 4. **从页面...

    ECharts前台后台数据交互Demo

    设置请求方法(GET或POST)、URL、数据(如果需要发送数据给后端)以及回调函数来处理响应。 4. **处理响应**:后端接收到请求后执行SQL查询,然后将查询结果转化为JSON格式返回给前端。前端的AJAX回调函数会接收到...

    java聊天系统 可以传送文件哈

    服务器端负责处理来自多个客户端的连接请求,维护用户状态,转发消息,并确保数据的安全性。客户端则用于用户交互,接收和发送消息,以及进行文件传输。 在Java中,服务器端通常使用Socket编程来创建网络连接。...

    Android通过POST和GET向服务器发送数据

    - 网络请求可能会失败,需要检查`HttpResponse`的`getStatusLine()`,根据返回的状态码判断请求是否成功,并处理异常。 8. **网络权限**: - 记得在AndroidManifest.xml中添加网络权限: ```xml ``` 理解并...

    android向php服务器传送数据

    如果需要发送JSON或XML数据,可以使用对应的编码方式,并设置正确的`Content-Type`。 3. **PHP接收数据**:服务器端的PHP脚本需要解析接收到的数据。对于`application/x-www-form-urlencoded`数据,可以使用`$_POST...

    Ajax中使用JSON传输数据

    例如,将上面的JSON对象作为POST请求的数据发送: ```javascript var xhr = new XMLHttpRequest(); xhr.open('POST', 'http://example.com/api/user'); xhr.setRequestHeader('Content-Type', 'application/json');...

    图书管理系统,Java课程设计,前端网页用bootstrap,后端Java,Ajax和Servlet信息传送。.zip

    Servlet运行在服务器端,处理客户端发送的数据,然后返回相应的响应。在这个项目中,Servlet被用来处理用户请求,如登录验证、图书查询、添加或删除图书等操作,实现业务逻辑的处理。 Ajax(Asynchronous ...

    jsp+servlet实现发送短信验证码(实现简单手机登录)

    在Web应用中,Servlet处理HTTP请求并返回响应。在本项目中,Servlet负责接收Ajax请求,处理短信验证码的发送。 ### 短信验证流程 1. **用户输入手机号**:用户在登录界面输入手机号码。 2. **发送请求**:使用...

    axis2传送list资源包

    标题 "axis2传送list资源包" 涉及的核心知识点是使用Apache Axis2框架来处理并传输包含List格式数据的资源。Apache Axis2是Java Web服务(Web Services)的一个实现,它提供了高度可扩展和高性能的环境来创建和部署...

    java源码包---java 源码 大量 实例

    Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非...

    使用SpringMVC进行数据的传送,数据来自mysql数据库 (1)没有使用hibernate

    2. **Model-View-Controller**:SpringMVC中的模型由业务对象组成,视图负责展示数据,而控制器则处理用户请求,调用业务逻辑并更新模型。 **二、数据库连接** 1. **JDBC连接**: 不使用Hibernate时,我们会直接...

    XMLHttp中文参考手册

    XmlHttp是一套可以在java script、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。来自MSDN的解释:XmlHttp提供...

    java源码包3

    Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  ...

Global site tag (gtag.js) - Google Analytics