首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SOAP头中的方法签名是什么?

SOAP头中的方法签名是什么?
EN

Stack Overflow用户
提问于 2010-05-26 16:46:15
回答 1查看 1.3K关注 0票数 1

我想使用Zend来模拟下面的SOAP请求,但是我不理解头中的'__MethodSignature'部分。有人能解释一下吗?

代码语言:javascript
复制
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <SOAP-ENV:Header>
        <h3:__MethodSignature xsi:type="SOAP-ENC:methodSignature"
        xmlns:h3="http://schemas.microsoft.com/clr/soap/messageProperties"
        SOAP-ENC:root="1">
            xsd:string
        </h3:__MethodSignature>
    </SOAP-ENV:Header>

    <SOAP-ENV:Body>
    <i4:ReturnDataset id="ref-1"
        xmlns:i4="http://schemas.microsoft.com/clr/nsassem/Interface.IReturnDataSet/Interface">
            <tName id="ref-5">BU</tName>
        </i4:ReturnDataset>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

当我像这样调用这个ReturnDataSet函数时:

代码语言:javascript
复制
$client = new Zend_Soap_Client($wsdl_url, array('soap_version' => SOAP_1_1));
$tName = "BU";
$result = $client->ReturnDataset($tName);

服务器抛出一个错误。我认为这个标题部分在扮演什么角色?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-07 20:11:56

尝试设置MethodSignature或__MethodSignature SOAP头。对于普通的PHP SOAP客户端,您可以这样做:

代码语言:javascript
复制
$client->__setSoapHeaders(new SoapHeader(
    'http://schemas.microsoft.com/clr/soap/messageProperties',
    '__MethodSignature',
    'xsd:string'
));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2915033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档