来自好心大哥的代码
HttpClient httpClient = new HttpClient();
tring url = wsconfigVO.getUrl();
String soapRequestData = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://webServiceNCDataService.webservice.icss.com/\"><soapenv:Header/><soapenv:Body><web:capitalPay><requestXml><![CDATA["
+ exportxml
+ "]]></requestXml></web:capitalPay></soapenv:Body></soapenv:Envelope>";
Logger.error("[gzcg]bw:"+soapRequestData);
PostMethod httppost = new PostMethod(url);
try {
httppost.setRequestHeader("Content-Type", "text/xml;charset=UTF-8");
httppost.setRequestHeader("SOAPAction", "");
byte[] b = soapRequestData.getBytes("utf-8");
InputStream is = new ByteArrayInputStream(b, 0, b.length);
RequestEntity re = new InputStreamRequestEntity(is, b.length,
"application/soap+xml; charset=utf-8");
httppost.setRequestEntity(re);
httpClient.executeMethod(httppost);
InputStream rs = httppost.getResponseBodyAsStream();
Document document = new SAXReader().read(rs, "UTF-8");
String result = document.asXML();
Logger.error("[gzsyzr] backxml:"+result);
result = result.replaceAll("<", "<").replaceAll(">", ">");
result = result.substring(result.lastIndexOf("<?xml"));
result = result.substring(0, result.indexOf("</MSG>") + 6);
Logger.error("[gzsyzr] backxml1:"+result);
return new Object[]{result.trim()};
} catch (Exception e) {
Logger.error("调用接口服务报错:" + e.getMessage(), e);
throw new BusinessException("调用esburlssl接口服务报错:" + e.getMessage(), e);
} finally {
httppost.releaseConnection();
SoapHttpClient
HttpClient轻量级包装(使用IHttpClientFactory ),用于发布消息,使用户可以发送SOAP IHttpClientFactory和标头(如果需要)而无需关心信封。
3.0.0
将HttpClient替换为HttpClientFactory。
2.2.1
添加了对取消令牌的支持。
2.2.0
更新的代码库。
将测试项目迁移到.net核心应用。
修复了未发送SOAPAction的错误。
2.1.0
更新到NetStandardLibrary 2.0
修复了扩展方法递归调用自己的错误
2.0.0
主要重构到代码库。
大家WebService接口还在使用生成的类去实现调用的吗?其实Hutool的WebService工具很厉害,但是文档写的不太清楚,或者示例不够多,我主要做医疗业务,对接方基本都是WebService接口,刚开始使用hutool的时候确实花费了挺长时间研究,最终失败告终,奈何业务多,有丰富的机会去尝试,现在基本啥格式的都可以克服了。一、WebService是什么?
在项目开发过程中,有时会用到 webservice 服务,今天给大家带来一个简单好用的 soap请求 工具类。里面用到了两个第三方依赖,大家可以自主进行选择,推荐使用hutool-http包的SoapClient一、项目pom文件添加相关依赖org.apache.axisaxis1.4commons-discoverycommons-discovery0.2commons-loggingcommo...
一,什么是soap,什么是wsdl,为什么要用他们
SOAP是基于XML和HTTP通信协议,xml各种平台,各种语言都支持的一个种语言。http呢它得到了所有的因特网浏览器及服务器的支持。
WSDL 指网络服务描述语言 (Web Services Description Language),是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,
使用Eclipse自动生成Soap Client的代码在项目按右键,选择New -> Other ->Web Services -> Web Service Client,进入向导。加入自有代码,例如加入Envelope Header在xxxxStub.java文件相应的方法中加入:public com.example.api.ApiStatus.EchoResponse ech...
前一段时间在De1CTF中的ShellShellShell以及SUCTF的Upload labs2都涉及到了利用PHP的SoapClient类进行SSRF,因此在这里记录下。
0x01 什么是Soap
SOAP是webService三要素(SOAP、WSDL、UDDI)之一:
WSDL 用来描述如何访问具体的接口。
UDDI用来管理,分发,查询webService。
SOAP(简单对...
我在尝试从SOAP API服务器获取请求时执行以下PHP代码try {$soap = new SoapClient($wsdl,$options);$data = $soap->GetXYZ($params);}catch(Exception $e) {$Lastresponse = $soap->__getLastResponse();}我得到的只是“看起来我们没有XML文档”的响应...
修改php.ini
得添加extension=php_soap.dll (加载soap 内置包)
修改soap.wsdl_cache_enabled=1 改为soap.wsdl_cache_enabled=0 这个是soap的缓存,测试的时候最好改为0,上线稳定了改为1
soap有两种模式一种是wsdl,一种是no-wsdl
二,熟悉几个函
1 import java.util.Date;
2 import org.apache.commons.lang.time.DateFormatUtils;
3 import cn.hutool.http.HttpRequest;
4 i...