PHP SOAP 请求,删除 ns1 : et ns:2 from request

标签 php soap namespaces xml-namespaces soap-client

我想从我的 Soap 请求中删除 ns:1 和 ns:2。
实际上我在生成时得到了这个:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="*********" xmlns:ns2="**************"><SOAP-ENV:Header><ns2:shp:sc><user>***</user><password>*******</password><companyName>******</companyName><autoCommit>***</autoCommit></ns2:shp:sc></SOAP-ENV:Header><SOAP-ENV:Body><ns1:p_put_order><put_orderRequest><shop_order>TEST2</shop_order><shop_account>100000</shop_account><order_comment>test</order_comment></put_orderRequest></ns1:p_put_order></SOAP-ENV:Body></SOAP-ENV:Envelope>

然后在我的 php 文件中,我得到了:
 $options = array("soap_version" => SOAP_1_1,
                 "encoding"     => "UTF-8",
                 "trace"        => true,
                 "exceptions"   => true,
                         'cache_wsdl' => WSDL_CACHE_NONE,

                        );

    $client = new SoapClient($soapURL, $options);
    $header = new SoapHeader($soapURL,'shp:sc',$auth, false);
    $headerSoap = $client->__setSoapHeaders($header);

我尝试使用 SoapVar()、__doRequest() 但这些都不起作用......
你对此有什么想法吗?
谢谢您的帮助

最佳答案

$header = new SoapHeader($soapURL,'shp:sc',$auth, false);

请从这里删除 $soapURL。第一个参数假设是命名空间。请在此处查看文档:http://php.net/manual/en/class.soapheader.php .如果失败,请发布 WSDL 文件。

关于PHP SOAP 请求,删除 ns1 : et ns:2 from request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53541527/

相关文章:

php - 将连接数据从 mysql 输出到 json 作为 json 对象

php - 需要 exec() ffmpeg 在共享主机、1and1 主机上

c# - 打印 C# Web 服务的 SOAP 请求和响应

java - 如何在解析 SOAP 正文时从 NodeList 对象中提取属性值

namespaces - TCL 从命名空间外的 proc 调用命名空间变量

javascript - 将 JavaScript 命名空间拆分为多个文件

PHP - 检查 SQL 中是否已存在索引

php - Trait 中的 insteadof 关键字如何工作

node.js - 使用 Node js 的 Soap 服务器

c# - 如何控制 .Net 在命名空间冲突中选择哪个程序集?