여기에서이 질문을했습니다. Savon 2 returns nothingSavon은 Rails 4에서 결과를 반환하지 않습니까?
그리고 대답을 얻었습니다. + Steffen Roller 덕분에
이제 대부분의 Soap API가 정렬됩니다. 이걸로, 나는 아무것도 얻지 못하는 모든 것을 시도했습니다. USZip이 작동 할 때 작동해야한다고 생각했습니다. 분명히 :(하지
비누 API :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:GetHistoryByID>
<!--Optional:-->
<tem:personId>789834133</tem:personId>
</tem:GetHistoryByID>
</soapenv:Body>
</soapenv:Envelope>
SoapUI 응답 :
여기<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetHistoryByIDResponse xmlns="http://tempuri.org/">
<GetHistoryByIDResult xmlns:a="http://schemas.datacontract.org/2004/07/Domain.MySite.WS" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:ErrorMessage i:nil="true"/>
<a:Rounds xmlns:b="http://schemas.datacontract.org/2004/07/Domain.MySite.WS">
<b:Round>
<b:AdjustedGross>104</b:AdjustedGross>
<b:MainField>14</b:MainField>
</b:Round>
<b:Round>
<b:AdjustedGross>101</b:AdjustedGross>
<b:MainField>14</b:MainField>
</b:Round>
</a:Rounds>
<a:Status>Success</a:Status>
</GetHistoryByIDResult>
</GGetHistoryByIDResponse>
</s:Body>
</s:Envelope>
내 Savon
require 'savon'
require 'pp'
a_url = 'wsdl link in here'
client = Savon.client(
wsdl: a_url,
log: true, # set true to switch on logging
log_level: :debug,
pretty_print_xml: true
)
person_id = "12345"
response = client.call(:get_history_by_id, message: { "personId" => person_id }
)
되고 응답이 이것이다 :
{:get_history_by_id_response=>{:get_history_by_id_result=>{:error_message=>nil, :rounds=>{:"@xmlns:b"=>"http://schemas.datacontract.org/2004/07/Domain.MySite.Entities"}, :status=>"Success", :"@xmlns:a"=>"http://schemas.datacontract.org/2004/07/Domain.MySite.WS", :"@xmlns:i"=>"http://www.w3.org/2001/XMLSchema-instance"}, :@xmlns=>"http://tempuri.org/"}}
다시 한 번 감사드립니다.
업데이트 : Savon 로그 :
D, [2014-06-13T10:14:56.457008 #3157] DEBUG -- : HTTPI GET request to api.mysite.com.au (httpclient)
I, [2014-06-13T10:14:56.569055 #3157] INFO -- : SOAP request: http://api.mysite.com.au/MyDomain/DomainCCService.svc
I, [2014-06-13T10:14:56.569113 #3157] INFO -- : SOAPAction: "http://tempuri.org/IDomainCCService/GetHistoryById", Content-Type: text/xml;charset=UTF-8, Content-Length: 382
D, [2014-06-13T10:14:56.569214 #3157] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://tempuri.org/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<tns:GetHistoryById>
<personId>789834133</personId>
</tns:GetHistoryById>
</soapenv:Body>
</soapenv:Envelope>
D, [2014-06-13T10:14:56.569418 #3157] DEBUG -- : HTTPI POST request to api.mysite.com.au (httpclient)
I, [2014-06-13T10:14:56.902413 #3157] INFO -- : SOAP response (status 200)
D, [2014-06-13T10:14:56.902625 #3157] DEBUG -- : <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetHistoryByIdResponse xmlns="http://tempuri.org/">
<GetHistoryByIdResult xmlns:a="http://schemas.datacontract.org/2004/07/Domain.MySite.WS" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:ErrorMessage i:nil="true"/>
<a:Rounds xmlns:b="http://schemas.datacontract.org/2004/07/Domain.MySite.Entities"/>
<a:Status>Success</a:Status>
</GetHistoryByIdResult>
</GetHistoryByIdResponse>
</s:Body>
</s:Envelope>
감사
질문에 로깅을 추가 할 수 있습니까? savon 호출은 XML에서 어떻게 보이나요? –
Savon 로그를 추가했습니다. –