我的SOAP请求有问题。当我尝试下面的soap请求到服务器然后它返回 预期的结果。
地点:https://YOUR_SERVER/apitransactional/services/TransactionalService?wsdl
输入:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:api="http://api.service.apitransactional.emailvision.com/">
<soapenv:Header/>
<soapenv:Body>
<api:openApiConnection>
<login>usernaem</login>
<pwd>password</pwd>
<key>security-key</key>
</api:openApiConnection>
</soapenv:Body>
</soapenv:Envelope>
输出:
<soap:Envelope>
<soap:Body>
<ns2:openApiConnectionResponse>
<return>G9X7CsNn3HisxFdwAu4W76mBewQgH9WW-3CyeO9WBMiHXX_u9ufLHDkA-NypiiYFGh7FLbEz2_c1YonjauDs7Jhk9DGvGNSTLMTjdz5wT2V20E4m3axKPzEnjrvzC63ItFzBIYIeYXHxjKf3w9Yxmmhz5SSeXg</return>
</ns2:openApiConnectionResponse>
</soap:Body>
</soap:Envelope>
它返回此连接的标记。
但是当我尝试以下请求时,它返回整个wsdl文件而不是 成功/失败的回应。
地点:http://api.notificationmessaging.com/NMSOAP/NotificationService?wsdl
输入:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:api="http://api.service.nsapi.emailvision.com/">
<soapenv:Header/>
<soapenv:Body>
<api:sendObjectsWithFullStatus>
<arg0>
<sendrequest>
<content>
<entry>
<key>1</key>
<value>>
<![CDATA[
<table width="600">
<tr>
<td>
<font size="2" face="Arial">Our powerful algorithms
already found a matching profile that matches your criteria:
<br>Celina72 </font>
<img src="http://mypath/to/my/image.gif" width="50"
height="50" border="0" />
</td>]]></value>
</entry>
</content>
<dyn>
<entry>
<key>firstname</key>
<value>john</value>
</entry>
</dyn>
<email>jblum@flowerpowershop.biz</email>
<encrypt>BdX7CqkmjTHtxWEKB5QK6MzXKkx6HK3E8guM</encrypt>
<notificationId>1234</notificationId>
<random>4A776E3602000078</random>
<senddate>2008-12-12T00:00:00</senddate>
<synchrotype>NOTHING</synchrotype>
<uidkey>EMAIL</uidkey>
</sendrequest>
<sendrequest>
<content>
<entry>
<key>1</key>
<value>>
<![CDATA[
<table width="600">
<tr>
<td>
<font size="2" face="Arial">Our powerful
algorithms already found a matching profile that matches your criteria:
<br>Celina72 </font>
<img src="http://mypath/to/my/image.gif" width-
h="50" height="50" border="0" />
</td>]]></value>
</entry>
</content>
<dyn>
<entry>
<key>firstname</key>
<value>David</value>
</entry>
</dyn>
<email>dcoulon@flowerpowershop.biz</email>
<encrypt>BdX7CqkmjTHtxWEKB5QK6MzXKkx6HK3E8guM</encrypt>
<notificationId>1234</notificationId>
<random>4A776E3602000078</random>
<senddate>2008-12-12T00:00:00</senddate>
<synchrotype>UPDATE</synchrotype>
<uidkey>EMAIL</uidkey>
</sendrequest>
</arg0>
</api:sendObjectsWithFullStatus>
</soapenv:Body>
</soapenv:Envelope>
输出:
<?xml version='1.0' encoding='UTF-8' ?>
<wsdl:definitions name="NotificationServiceService" targetNamespace="http://api.service.nsapi.emailvision.com/">
<wsdl:types>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://api.service.nsapi.emailvision.com/">
<xs:element name="MultiSendRequest" type="tns:multiSendRequest" />
<xs:element name="MultiSendRequestResponse" type="tns:multiSendRequestResponse" />
<xs:element name="getSendRequestById" type="tns:getSendRequestById" />
<xs:element name="getSendRequestByIdResponse" type="tns:getSendRequestByIdResponse" />
<xs:element name="notificationExceptionDetails" type="tns:notificationExceptionDetails" />
<xs:element name="sendObject" type="tns:sendObject" />
<xs:element name="sendObjectResponse" type="tns:sendObjectResponse" />
<xs:element name="sendObjects" type="tns:sendObjects" />
<xs:element name="sendObjectsResponse" type="tns:sendObjectsResponse" />
<xs:element name="sendObjectsWithFullStatus" type="tns:sendObjectsWithFullStatus" />
<xs:element name="sendObjectsWithFullStatusResponse" type="tns:sendObjectsWithFullStatusResponse" />
<xs:element name="sendrequest" type="tns:sendRequest" />
<xs:element name="sendrequestresponse" type="tns:sendRequestResponse" />
<xs:complexType name="sendObjects">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="tns:multiSendRequest" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="multiSendRequest">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="sendrequest" nillable="true" type="tns:sendRequest" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendRequest">
<xs:sequence>
<xs:element name="content">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="entry">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="key" type="xs:int" />
<xs:element minOccurs="0" name="value" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dyn">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="entry">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="key" type="xs:string" />
<xs:element minOccurs="0" name="value" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="email" type="xs:string" />
<xs:element minOccurs="0" name="encrypt" type="xs:string" />
<xs:element name="notificationId" type="xs:long" />
<xs:element minOccurs="0" name="random" type="xs:string" />
<xs:element minOccurs="0" name="senddate" type="xs:dateTime" />
<xs:element minOccurs="0" name="synchrotype" type="tns:synchroType" />
<xs:element minOccurs="0" name="uidkey" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendObjectsResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:multiSendRequestResponse" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="multiSendRequestResponse">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="element" nillable="true" type="tns:notificationServiceResponse" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="notificationServiceResponse">
<xs:sequence>
<xs:element minOccurs="0" name="result" type="xs:anyType" />
</xs:sequence>
<xs:attribute name="email" type="xs:string" />
<xs:attribute name="responseStatus" type="xs:string" />
</xs:complexType>
<xs:complexType name="notificationExceptionDetails">
<xs:sequence>
<xs:element minOccurs="0" name="description" type="xs:string" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="fields" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="status" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="getSendRequestById">
<xs:sequence>
<xs:element name="arg0" type="xs:long" />
<xs:element minOccurs="0" name="arg1" type="xs:string" />
<xs:element minOccurs="0" name="arg2" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="getSendRequestByIdResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:sendRequestResponse" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendRequestResponse">
<xs:sequence>
<xs:element minOccurs="0" name="email" type="xs:string" />
<xs:element name="id" type="xs:long" />
<xs:element name="notificationId" type="xs:long" />
<xs:element minOccurs="0" name="processDate" type="xs:dateTime" />
<xs:element minOccurs="0" name="requestDate" type="xs:dateTime" />
<xs:element minOccurs="0" name="sendDate" type="xs:dateTime" />
<xs:element minOccurs="0" name="status" type="xs:string" />
<xs:element minOccurs="0" name="UId" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendObject">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="tns:sendRequest" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendObjectResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendObjectsWithFullStatus">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="tns:multiSendRequest" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendObjectsWithFullStatusResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:multiSendRequestResponse" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="synchroType">
<xs:restriction base="xs:string">
<xs:enumeration value="NOTHING" />
<xs:enumeration value="INSERT" />
<xs:enumeration value="UPDATE" />
<xs:enumeration value="INSERT_UPDATE" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://exceptions.service.nsapi.emailvision.com/">
<xsd:element name="NotificationServiceException" nillable="true" type="ns0:notificationExceptionDetails" />
</xsd:schema>
</wsdl:types>
<wsdl:message name="getSendRequestByIdResponse">
<wsdl:part element="tns:getSendRequestByIdResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="sendObjectsWithFullStatus">
<wsdl:part element="tns:sendObjectsWithFullStatus" name="parameters" />
</wsdl:message>
<wsdl:message name="NotificationServiceException">
<wsdl:part element="ns1:NotificationServiceException" name="NotificationServiceException" />
</wsdl:message>
<wsdl:message name="sendObjectResponse">
<wsdl:part element="tns:sendObjectResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="sendObjectsResponse">
<wsdl:part element="tns:sendObjectsResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="getSendRequestById">
<wsdl:part element="tns:getSendRequestById" name="parameters" />
</wsdl:message>
<wsdl:message name="sendObjectsWithFullStatusResponse">
<wsdl:part element="tns:sendObjectsWithFullStatusResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="sendObjects">
<wsdl:part element="tns:sendObjects" name="parameters" />
</wsdl:message>
<wsdl:message name="sendObject">
<wsdl:part element="tns:sendObject" name="parameters" />
</wsdl:message>
<wsdl:portType name="NotificationService">
<wsdl:operation name="sendObjects">
<wsdl:input message="tns:sendObjects" name="sendObjects" />
<wsdl:output message="tns:sendObjectsResponse" name="sendObjectsResponse" />
<wsdl:fault message="tns:NotificationServiceException" name="NotificationServiceException" />
</wsdl:operation>
<wsdl:operation name="getSendRequestById">
<wsdl:input message="tns:getSendRequestById" name="getSendRequestById" />
<wsdl:output message="tns:getSendRequestByIdResponse" name="getSendRequestByIdResponse" />
<wsdl:fault message="tns:NotificationServiceException" name="NotificationServiceException" />
</wsdl:operation>
<wsdl:operation name="sendObject">
<wsdl:input message="tns:sendObject" name="sendObject" />
<wsdl:output message="tns:sendObjectResponse" name="sendObjectResponse" />
<wsdl:fault message="tns:NotificationServiceException" name="NotificationServiceException" />
</wsdl:operation>
<wsdl:operation name="sendObjectsWithFullStatus">
<wsdl:input message="tns:sendObjectsWithFullStatus" name="sendObjectsWithFullStatus" />
<wsdl:output message="tns:sendObjectsWithFullStatusResponse" name="sendObjectsWithFullStatusResponse" />
<wsdl:fault message="tns:NotificationServiceException" name="NotificationServiceException" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="NotificationServiceServiceSoapBinding" type="tns:NotificationService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="sendObjects">
<soap:operation soapAction="" style="document" />
<wsdl:input name="sendObjects">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="sendObjectsResponse">
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="NotificationServiceException">
<soap:fault name="NotificationServiceException" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getSendRequestById">
<soap:operation soapAction="" style="document" />
<wsdl:input name="getSendRequestById">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="getSendRequestByIdResponse">
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="NotificationServiceException">
<soap:fault name="NotificationServiceException" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="sendObject">
<soap:operation soapAction="" style="document" />
<wsdl:input name="sendObject">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="sendObjectResponse">
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="NotificationServiceException">
<soap:fault name="NotificationServiceException" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="sendObjectsWithFullStatus">
<soap:operation soapAction="" style="document" />
<wsdl:input name="sendObjectsWithFullStatus">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="sendObjectsWithFullStatusResponse">
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="NotificationServiceException">
<soap:fault name="NotificationServiceException" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="NotificationServiceService">
<wsdl:port binding="tns:NotificationServiceServiceSoapBinding" name="NotificationServicePort">
<soap:address location="http://api.notificationmessaging.com/nsapi/services/NotificationService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
预期产出:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:sendObjectResponse xmlns:n-
s2="http://api.service.nsapi.emailvision.com/">
<return>SendRequest has been successfully saved!</return>
</ns2:sendObjectResponse>
</soap:Body>
</soap:Envelope>
任何人都可以建议实际问题是什么?
我的请求或服务器响应中出现此问题吗?
答案 0 :(得分:4)
是否有特定的理由将?wsdl添加到您的端点地址?来自服务器(http://api.notificationmessaging.com/NMSOAP/NotificationService)的响应不是您所期望的,但绝对不是WSLD
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:sendObjectsWithFullStatusResponse xmlns:ns2="http://api.service.nsapi.emailvision.com/">
<return>
<element responseStatus="failed" email="jblum@flowerpowershop.biz">
<result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="http://www.w3.org/2001/XMLSchema" xsi:type="ns4:string">
Query random: 4A776E3602000078 doesnt match with notification random: {1} !!!
</result>
</element>
<element responseStatus="failed" email="dcoulon@flowerpowershop.biz">
<result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="http://www.w3.org/2001/XMLSchema" xsi:type="ns4:string">
Query random: 4A776E3602000078 doesnt match with notification random: {1} !!!
</result>
</element>
</return>
</ns2:sendObjectsWithFullStatusResponse>
</soap:Body>
</soap:Envelope>
答案 1 :(得分:0)
您可以检查服务器端的特定操作实现吗?它一定是在响应而不是你想要的响应发送wsdl。你也可以检查你的肥皂动作一次,可能是由于错误的肥皂动作服务器通过向你发送wsdl来过滤你的请求,虽然我没有在你的wsdl中看到任何肥皂动作。
我在soapui中尝试过这个wsdl,我得到了适当的响应。尽管它没有成功。
随机查询:4A776E3602000078与随机通知不匹配:{1} !!! 随机查询:4A776E3602000078与随机通知不匹配:{1} !!!