邮递员的肥皂请求

时间:2018-06-25 00:30:48

标签: c# php postman soap-client

我有一个PHP Soap请求,我想将其继承到C#。我以前从未使用过Soap,并且对其请求/响应结构非常困惑。

我想在获得编码之前在POSTMAN中对此进行测试。

这是我的邮递员设置:

env := pa.call()
fmt.Printf("Env is %s\n", *env)

这是正在使用的PHP代码,效果很好:

URL=http://example.com/service1.svc?singleWsdl
contentType=text/xml

$client = new SoapClient($wsdlurl, $options); $customerData = $client->NewCustAddDC($params); 是一个看起来像这样的数组:

$params

我将XML放入POSTMAN的请求正文中,但得到了

<NewCustomerAdd>
  <InitParameters>
    <InitOrderLines>
      <InitPartDesc />
      <InitPartSKU>test</InitPartSKU>
      <InitQuantity>1</InitQuantity>
    </InitOrderLines>
    <InitOrderLines>
      <InitPartDesc />
      <InitPartSKU>test</InitPartSKU>
      <InitQuantity>1</InitQuantity>
    </InitOrderLines>
    <InitOrderLines>
      <InitPartDesc />
      <InitPartSKU>test</InitPartSKU>
      <InitQuantity>1</InitQuantity>
    </InitOrderLines>
  </InitParameters>
  <TemplateParameters>
    <TemplateOrderLines>
      <TemplatePartDesc />
      <TemplatePartSKU>test</TemplatePartSKU>
      <TemplateQuantity>1</TemplateQuantity>
    </TemplateOrderLines>
    <TemplateOrderLines>
      <TemplatePartDesc />
      <TemplatePartSKU>test</TemplatePartSKU>
      <TemplateQuantity>1</TemplateQuantity>
    </TemplateOrderLines>
    <TemplateOrderLines>
      <TemplatePartDesc />
      <TemplatePartSKU>test</TemplatePartSKU>
      <TemplateQuantity>1</TemplateQuantity>
    </TemplateOrderLines>
  </TemplateParameters>
  <PetInfoParameters>
    <PetInfoLines>
      <DateModified></DateModified>
      <PetFirstName>test</PetFirstName>
      <PetID>1</PetID>
      <PetLastName />
      <ServiceRelated />
      <Species />
      <Weight>1</Weight>
    </PetInfoLines>
    <PetInfoLines>
      <DateModified></DateModified>
      <PetFirstName>test</PetFirstName>
      <PetID>1</PetID>
      <PetLastName />
      <ServiceRelated />
      <Species />
      <Weight>1</Weight>
    </PetInfoLines>
  </PetInfoParameters>
  <SYSPROCustomerID />
  <CustomerFirstName>test</CustomerFirstName>
  <CustomerLastName>test</CustomerLastName>
  <CustomerDesignation />
  <CustomerPrimaryEmail>test</CustomerPrimaryEmail>
  <CustomerEmail2 />
  <CustomerPrimaryPhone>test</CustomerPrimaryPhone>
  <CustomerPhone2 />
  <CustomerBillToAddress1>test</CustomerBillToAddress1>
  <CustomerBillToAddress2>test</CustomerBillToAddress2>
  <CustomerBillToCity>test</CustomerBillToCity>
  <CustomerBillToState>test</CustomerBillToState>
  <CustomerBillToZip>test</CustomerBillToZip>
  <CustomerCountry>test</CustomerCountry>
  <AuthorizeCustomerProfileID>test</AuthorizeCustomerProfileID>
  <AuthorizePaymentProfileID>test</AuthorizePaymentProfileID>
  <ShipAddress1>test</ShipAddress1>
  <ShipAddress2>test</ShipAddress2>
  <ShipCity>test</ShipCity>
  <ShipState>test</ShipState>
  <ShipZip>test</ShipZip>
  <ShipDayofWeek>test</ShipDayofWeek>
  <DeliveryInterval>test</DeliveryInterval>
  <ShippingCosts>test</ShippingCosts>
  <TaxCode />
  <ShipVia>test</ShipVia>
  <DeliveryNotes>test</DeliveryNotes>
  <InitDeliveryDate>test</InitDeliveryDate>
  <FirstRegOrderDeliveryDate>test</FirstRegOrderDeliveryDate>
  <ReferralType>test</ReferralType>
  <ReferralName>test</ReferralName>
  <Last4Digits>test</Last4Digits>
  <InitialCode>test</InitialCode>
  <SpecialInstructions>test</SpecialInstructions>
</NewCustomerAdd>

请求正文

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <s:Fault>
            <faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</faultcode>
            <faultstring xml:lang="en-US">The message with Action 'NewCustAddDC' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring>
        </s:Fault>
    </s:Body>
</s:Envelope>

我到底在做错什么?

0 个答案:

没有答案