服务端是一个简单的Servlet,需要配置web.xml
package com.servlet; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Iterator; import javax.servlet.GenericServlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class MyServlet extends GenericServlet { @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { System.out.println("------调用servlet -----"); InputStream in = request.getInputStream(); SAXReader saxReader = new SAXReader(); InputStreamReader strInStream = new InputStreamReader(in, "UTF-8"); try { Document document = saxReader.read(strInStream); Element root = document.getRootElement(); //FILELIST System.out.println("1、"+root.getName()); Iterator lv = root.elementIterator("FILE"); Element el = null; while (lv.hasNext()) { el = (Element) lv.next(); System.out.println("2、"+el.getName()); System.out.println("FILE_NAME="+el.elementText("FILE_STRING")); System.out.println("FILE_NAME="+el.elementText("FILE_NAME")); //逻辑处理 } //String file = document.selectSingleNode("/FILE/FILE_STRING").getText(); //System.out.println(file); } catch (DocumentException e) { e.printStackTrace(); } Document document = DocumentHelper.createDocument(); Element rootElement = document.addElement("RET_INFO"); rootElement.addElement("RESULT", "操作成功"); DataOutputStream out = new DataOutputStream(response.getOutputStream()); XMLWriter writer = new XMLWriter(out); writer.write(document); writer.close(); out.flush(); } }
客户端直接通过http请求的方式请求远程地址的servlet
package com.client; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.XMLWriter; public class TestMyServlet { /** * @param args */ public static void main(String[] args) { Document document = DocumentHelper.createDocument(); Element rootElement = document.addElement("FILELIST"); Element planElement = rootElement.addElement("FILE"); planElement.addElement("FILE_STRING", "文件1"); planElement.addElement("FILE_NAME", "名称1"); Element planElement2 = rootElement.addElement("FILE"); planElement2.addElement("FILE_STRING", "文件2"); planElement2.addElement("FILE_NAME", "名称2"); HttpURLConnection http; try { URL urls = new URL("http://localhost:8080/HttpWebServier/"); http = (HttpURLConnection) urls.openConnection(); http.setDoOutput(true); http.setDoInput(true); http.setRequestMethod("POST"); DataOutputStream out = new DataOutputStream(http.getOutputStream()); XMLWriter writer = new XMLWriter(out); writer.write(document); writer.close(); out.flush(); //System.out.println( in(http.getInputStream())); //接口返回的报文 String resp = ""; java.io.BufferedReader breader = new BufferedReader(new InputStreamReader(http.getInputStream(), "UTF-8")); String str = breader.readLine(); while (str != null) { resp+=str; str= breader.readLine(); } System.out.println("resp="+resp); } catch (Exception ex) { ex.printStackTrace(); } } }
推荐可以通过Fiddler软件 自己拼接xml报文请求HTTP地址,报文格式如下:
<?xml version="1.0" encoding="UTF-8"?> <FILELIST> <FILE> <FILE_STRING>詹姆斯</FILE_STRING> <FILE_NAME>韦德</FILE_NAME> </FILE> <FILE> <FILE_STRING>科比</FILE_STRING> <FILE_NAME>鸟人</FILE_NAME> </FILE> </FILELIST>
注:dom4j-1.6.1.jar包见附件
相关推荐
首先,HTTPClient是Apache提供的一款强大的Java HTTP客户端API,它允许开发者发送HTTP请求并接收响应,支持各种HTTP方法,如GET、POST等。在本场景中,我们关注的是POST方法,它是HTTP协议中用于传输大量数据的一种...
`ServerThread`类负责读取客户端发送的数据,打印出来,并将接收到的消息原样返回给客户端。 接着,我们看客户端的实现。客户端通过`Socket`类与服务端建立连接,并发送数据。以下是一个简单的客户端代码示例: ``...
6. **测试**:在“socketTest”这个项目中,很可能包含了服务端和客户端的测试代码,用于验证XML文件的发送和接收是否正常。测试可能包括模拟不同网络条件下的发送、接收,以及异常情况的处理。 总的来说,这个项目...
2. **发送与接收**:模拟器能够模拟发送XML报文到指定的目标地址,并接收服务器的响应,帮助开发者验证报文格式的正确性和服务端的处理能力。 3. **报文预览**:提供XML报文的预览功能,便于检查XML的语法结构和...
在提供的代码片段中,可以看到主要分为两个部分:发送XML数据与接收XML数据。 ##### 1. 发送XML数据 ```csharp DataTable data = new DataTable("Project"); data.Columns.Add("Name"); data.Columns.Add(...
实际上就是发送和接收消息,实现两个系统间消息的传递 jar包都在lib项目里 具体再解释一下,服务端需要 接口类,实现类,cxf 服务端xml,和一个pojo 客户端也需要接口类文件和pojo,和cxf客户端xml 但是没有接口的...
gSOAP提供了`soapcpp2`生成的测试客户端和服务器,可用于快速验证代码的正确性。同时,可以使用gSOAP的`soap_serve`和`soap_call`函数进行调试。 7. **最佳实践**: - 保持WSDL文件清晰简洁,避免过于复杂的类型...
6. **ServerDemo**: 服务端的演示代码,可能是一个Web应用程序,接收来自客户端(网页)的调用,处理8583报文,并返回相应的响应。这展示了服务端如何集成8583处理逻辑。 7. **doc**: 文档目录,可能包含了项目的...
以上代码演示了如何手工构建SOAP请求报文,并通过`HttpURLConnection`发送到Web Service接口。这种方式灵活,可以处理各种复杂的报文结构,包括那些AXIS等框架难以处理的SOAP Header。 在处理与第三方服务的报文...
2. 用户可以查询已经发送的报文历史信息列表,包括报文名称、报文大小和发送时间。 3. 由于不是开放服务,所以还需要对用户身份进行基本认证。 服务构建 为了实现上述功能,我们需要定义要提供的服务接口。首先,...
通过设置URL并添加查询参数,然后读取响应来获取服务器返回的数据。例如,使用`HttpURLConnection`: ```java URL url = new URL("http://example.com?param1=value1¶m2=value2"); HttpURLConnection conn = ...
### HTTP报文解析 #### 一、概述 HTTP(HyperText Transfer Protocol)报文是一种面向文本的数据包...通过对HTTP报文的深入分析,可以帮助开发者更有效地处理客户端和服务端之间的交互,提高应用程序的性能和安全性。
8583报文是ISO8583国际标准的报文格式,由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。8583报文的前面一段为位图,用来确定包的字段域组成情况。位图是8583包的灵魂,它是打包解包确定字段域的关键...
GB28181是中国国家公共安全视频监控网络系统联网通信协议标准,它定义了服务端和客户端之间的数据传输、控制、管理和互操作规范。在这个项目中,开发者使用了Go语言来实现GB28181协议的两端——服务端和客户端。Go...
1.建立Socket测试服务器端和测试客户端,并向其他端发送或接受报文数据,支持自动发送和自动应答,支持UDP和TCP; 2.录入的IP地址和端口等参数数据进行本地XML序列化,下次自动打开。(这个是我需要的,不用每次都...
实现请求回答网络通讯。...2. 客户端发送登录信息到服务端,服务端返回成功或失败。 3. 客户端登录成功后,发送字符串数据到服务端,服务端返回大写数据。 4. 客户端发送退出信息到服务端,服务端返回成功或失败。
本软件可以模拟不同类型的交易报文,可以对交易测试案例进行统一管理,并可以进行简单时间统计和成功率统计。 使用本软件可以减轻传统测试过程中的修改-编译-测试-的循环等待时间,在测试过程中可以根据需要随时...
本软件可以模拟不同类型的交易报文,可以对交易测试案例进行统一管理,并可以进行简单时间统计和成功率统计。 使用本软件可以减轻传统测试过程中的修改-编译-测试-的循环等待时间,在测试过程中可以根据需要随时...
这通常涉及使用HTTP协议的POST请求,将文件作为请求体的一部分发送,然后在服务器端接收并处理文件。在客户端,可以使用Axis1提供的API来构造这样的请求;在服务端,可以编写处理文件的业务逻辑。 2. **将传递的...
请求来源,可以帮助识别发起请求的客户端或服务端。 #### 9. **** 请求时间戳,通常用于时间戳校验、统计分析等场景。 #### 10. **** 订单数量,可能涉及批量处理或多订单操作。 ### 四、HTTP请求路径解析 #### ...