如何使用非默认的Content-Type调用PHP Soap 1.1

时间:2013-10-18 08:58:24

标签: php soap wsdl http-headers content-type

我需要在PHP中调用SOAP 1.1 Web服务。但是,要工作的要求之一是我必须发送Content-Type = application / soap + xml。现在,我知道这些是不同的:

  • SOAP 1.2 - >内容类型:application / soap + xml
  • SOAP 1.1 - >内容类型:text / xml

我需要使用SoapClient和WSDL来完成这项工作。但是,在我将SoapClient的版本设置为1.1

之后,我找不到如何设置Content-Type

有人可以提供示例或代码段吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以在SoapClient选项中提供流上下文。

$ctx_opts = array(
    'http' => array(
        'header' => 'Content-Type: application/soap+xml'
    )
);

$ctx = stream_context_create($ctx_opts);
$soapClient = new SoapClient('your.wsdl', array('stream_context' => $ctx));

答案 1 :(得分:0)

当您尝试在=STDEV(IF($B$1:$AAA$1>B7,INDEX(B:AAA,MATCH(A8,A:A,0),0))) 中设置标题时,有许多标题将被忽略,并且永远不会使用。

检查基础C源文件soap / php_http.c并搜索“跳过一些预定义的标头”以获取列表。

这就是某些情况下某些人报告尝试使用stream_contextset HostAuthorization和其他标题的原因。