首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP设置SOAPHeader

用PHP设置SOAPHeader
EN

Stack Overflow用户
提问于 2017-01-24 11:10:53
回答 1查看 618关注 0票数 0

我对肥皂很陌生,我有点不知道该怎么做。提供者的文档是非常有限的,所以这只是一个小的尝试和错误,因为他们不提供支持。文档指出,XML应该从以下内容开始--然后我假设它们是指标题。

代码语言:javascript
复制
POST /Economy/InvoiceOrder/V001/InvoiceService.asmx HTTP/1.1
Host: api.url.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://url.com/webservices/GetDeliveryMethods"

我尝试以下列方式设置标题:

代码语言:javascript
复制
    $header = new SoapHeader(
                            "POST /Economy/InvoiceOrder/V001/InvoiceService.asmx HTTP/1.1",
                            "Host: api.url.com",
                            "Content-type: text/xml;charset='utf-8'",
                            "Content-length: ".strlen($xmlfinal),                            
                            "SOAPAction: http://url.com/webservices/GetDeliveryMethods"

                        );
    $invoiceService->__setSoapHeaders($header);

但是,请求返回为“坏请求”。根据提供程序示例,我的XML看起来很好。

XML既作为服务器上的文件创建,又存储在$xmlfinal中。

有人知道我可能做错了什么吗?我很感激你能提供的任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-24 11:52:47

"SoapHeader“出现在<header>元素中。这可能不是你想要的。

您可以在流上下文中设置标头并将其传递给soap客户端。

代码语言:javascript
复制
$opts = array(
    'http' => array(
        'header' => 'YourHeader: value'
    ),
);

$ctx = stream_context_create($opts);

$client = new SoapClient('the.wsdl', array('stream_context' => $ctx));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41826724

复制
相关文章

相似问题

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