我遇到使用Savon发布SOAP的Ruby代码的问题
我有一个参数XML_BODY,显然没有被发送,或者,如果它是,接收它的Java代码看起来为null(如果我尝试返回"TEST"+ XML_BODY,响应显示"TEST null")
其他数据似乎发送好 - 真的很困惑
客户端操作是pub_mugs(),post(),subscribe()
这个Python/Zeep代码完全成功
from requests import Session
from zeep import Client
from zeep.transports import Transport
if __name__ == "__main__":
url="http://localhost:8080/Wormhole?wsdl"
with open('../../web/web/xsd/DETEP2012-with-content.xml', 'r') as f:
xml=f.read().replace('\n', '')
session = Session()
session.verify = False
transport = Transport(session=session)
client = Client(url, transport=transport)
print client.service.PubMugs(username='usr',password='pwd') #SUCCESS
print client.service.subscribe(username='usr',password='pwd') #SUCCESS
print client.service.post(username='usr',password='pwd',mug='110',XML_BODY=xml) #SUCCESS
Run Code Online (Sandbox Code Playgroud)
这个Ruby/Savon代码成功用于pub_mugs()和subscribe(),但是对于post()失败了
client = Savon.client(wsdl: ENV["WSDL"],
:ssl_verify_mode => :none,
:raise_errors => false,
pretty_print_xml: true)
doc = File.open("../web/web/xsd/DETEP2012-with-content.xml") { |f| Nokogiri::XML(f) }
xml = doc.to_xml.delete("\n").split(">",2)[1] …Run Code Online (Sandbox Code Playgroud)