gpt4 book ai didi

PHP SoapFault 详细信息命名空间

转载 作者:行者123 更新时间:2023-12-04 16:52:16 26 4
gpt4 key购买 nike

我试图从 PHP SoapServer 返回一个 SoapFault,但我坚持创建正确的响应格式。

处理异常时,我返回:

$detail = "message";
return new SoapFault("Client", "ValidationException", null, $detail, "ValidationException");

响应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>ValidationException</faultstring>
<detail>
<ValidationException>
<message>message</message>
</ValidationException>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

但是,我希望响应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>ValidationException</faultstring>
<detail>
<ns2:ValidationException xmlns:ns2="http://service.applicationsnet.com/soap/">
<message>message</message>
</ns2:ValidationException>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我尝试了几件事,但没有成功。你能帮我么?

命名空间的另一件事,是否可以更改“SOAP-ENV”信封命名空间?谢谢。

最佳答案

我不知道它是否仍然相关,但要定义一个像你想要的soapfault 类型的soapfault 必须在wsdl 中定义。

拿你的 wsdl 并在里面写一个像这样的soapFault操作

<wsdl:operation name="TransferFundsRequest">
<wsdl:input name="request" message="tns:TransferFundsRequest" />
<wsdl:output name="response" message="tns:TransferFundsResponse" />
<wsdl:fault name="fault" message="tns:ExceptionType" />
</wsdl:operation>`

其中故障类型是
<xsd:complexType name="ExceptionType">
<xsd:sequence>
<xsd:element name="Code" type="xsd:integer" />
<xsd:element name="Message" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>

关于PHP SoapFault 详细信息命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19612481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com