gpt4 book ai didi

web-services - 如何在服务器或客户端以编程方式记录 SOAP 消息和 HTTP header ?

转载 作者:行者123 更新时间:2023-12-01 03:19:42 26 4
gpt4 key购买 nike

一直在寻找这个和测试。
我只想记录 SOAP 消息详细信息和传输协议(protocol)请求/响应( header )以及它。
我有什么到目前为止发现 :
- 处理程序 ..在控制台输出上将soap消息输出为原始xml,这是一个很好的解决方案。但是,对于 HTTP header ( MimeHeaders used)似乎输出太少了。例如在客户端我只得到

Accept : text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-Type : text/xml; charset=utf-8
Content-Length : 260
- 系统属性
System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.ws.util.pipe.StandaloneTubeAssembler.dump", "true");
System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true");
这非常适合作为控制台的输出、完整的 http header 和 SOAP 消息。 但不是可定制用于记录、操作 header /消息。这是一个示例
---[HTTP request - http://localhost:8080/Testmart/TestMartCatalogService]---
Accept: text/xml, multipart/related
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
User-Agent: JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e
<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:getProducts xmlns:ns2="http://www.testmart.com"><arg0>books</arg0></ns2:getProducts></S:Body></S:Envelope>--------------------

---[HTTP response - http://localhost:8080/Testmart/TestMartCatalogService - 200]---
null: HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 414
Content-Type: text/xml;charset=UTF-8
Date: Sat, 30 Sep 2017 11:42:56 GMT
Server: JBoss-EAP/7
X-Powered-By: Undertow/1
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/><soap:Body><ns1:getProductsResponse xmlns:ns1="http://www.testmart.com"><return xmlns=""><item>Inferno</item><item>Joyland</item><item>The Game Of Thrones</item></return></ns1:getProductsResponse><TestBodyElement>hahahaha</TestBodyElement></soap:Body></soap:Envelope>--------------------
- Eclipse TCP/IP 监视器或 WireShark
两者都非常适合作为以前的解决方案进行监控,但是像第一个这样的(或以前的)解决方案输出的编程解决方案非常适合在代码中控制它。
那么是否有另一种方式或我可能会错过使用的处理程序或在处理程序中会输出转储配置等详细信息的方法?任何建议都非常感谢。

最佳答案

我的解决方案是使用 getResponseContext()

Map<String, Object> responseHeaders;
responseHeaders = sourceDispatch.getResponseContext();
Object cookie = responseHeaders.get("javax.xml.ws.http.response.headers");

关于web-services - 如何在服务器或客户端以编程方式记录 SOAP 消息和 HTTP header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46502865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com