我正在尝试使用Savon gem调用SOAP api。我收到以下错误:“(pre:svcFault)服务故障” 我为请求创建了标头和消息。 这是从SoapUI发送的请求:SoapUI request。 我得到了SoapUI的真实回应。 我的代码如下所示:
class SoapApi
require 'savon'
def self.initialize
header = {
"ebmCID" => "9366498d-bc79-4fad-be2b-fa1a0e84241a",
"ebmMID" => "9366498d-bc79-4fad-be2b-fa1a0e84241a",
"ebmRTID" => "9366498d-bc79-4fad-be2b-fa1a0e84241a",
"ebmSID" => "FMobile-FCUBS",
"ebmTimestamp" => "2019-06-10T12:27:46.1623586Z",
}
message = {
customerId: '00653473'
}
client = Savon.client(
:wsdl => "https://192.168.176.103:8012/tevs/pp.pm.evs.Customer_1.2?wsdl",
:ssl_verify_mode => :none
)
response = client.call(
:get_account_list,
:soap_header => header,
:message => message
)
return response
end
end
在这里,我正在调用上述方法:
#index.html.erb
<%=
SoapApi.initialize
puts @response
%>
答案 0 :(得分:0)
在哪里可以使用SoapUI(https://www.soapui.org。)创建有效的呼叫?首先尝试一下,使其生效。 接下来,从不带Rails的纯红宝石脚本创建调用,该调用将发送与之前在SoapUI中相同的功能XML。 第三,将此代码嵌入到您的RoR应用程序中。
您可以在客户端定义中添加以下内容,以更好地记录日志:
client = Savon.client(
:wsdl => "https://192.168.176.103:8012/tevs/pp.pm.evs.Customer_1.2?wsdl",
:ssl_verify_mode => :none,
log: true,
log_level: :debug,
pretty_print_xml: true
)
将输出与您工作的SoapUI示例进行比较。