在SOAP Body中包装TXMLData并修改HTTP头中的Content-Type

时间:2012-12-13 21:24:43

标签: delphi soap http-headers webservice-client

我有与this几乎相同的问题,但我需要在SOAP正文中发送[MyXML]。 就是这样:

POST /soap HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/octet-stream
SOAPAction: "getData"
Content-Length: 1664
Host: abc.com

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://xy.com/ns1">
       <soapenv:Header>
          <ns1:metadata>
             <ns1:processGroup>PG</ns1:processGroup>
             <ns1:processName>PN</ns1:processName>
             <ns1:applReqID>445526687456</ns1:applReqID>
             <ns1:receiver>XY</ns1:receiver>
             <ns1:documentVersion>2<ns1:documentVersion>
          </ns1:metadata>
       </soapenv:Header>
       <soapenv:Body>
    <sh:StandardBusinessDocument>
       <sh:StandardBusinessDocumentHeader>
          <sh:HeaderVersion>1.0</sh:HeaderVersion>
    ...
    </sh:StandardBusinessDocument>
       </soapenv:Body>
    </soapenv:Envelope>

是否有可能在delphi 2010中以及如何做到这一点?

另一个问题是我如何更改Content-Type,因为您可以看到webservice请求是application / octet-stream?

1 个答案:

答案 0 :(得分:0)

使用Rio.OnBeforeExecute处理程序,您可以将XML替换为您想要的任何内容。