如何使PHP SOAP 1.1呼叫使用非默认的Content-Type

问题描述 投票:4回答:2

我需要调用PHP中的SOAP 1.1 Web服务。然而,为了工作的要求之一是,我必须发送的Content-Type =应用程序/肥皂+ XML。现在,我知道这些都是差异:

  • SOAP 1.2 - >内容类型:应用/肥皂+ xml的
  • SOAP 1.1 - >内容类型:文本/ XML

我需要使用SoapClient的使用WSDL来做到这一点。但是,我怎么也找不到设置的内容类型后,我设置版本SoapClient的1.1

可能有人提供了示例或代码片断?

谢谢!

php soap wsdl http-headers content-type
2个回答
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));

0
投票

有许多当您尝试将它们放置在stream_context被忽略的头,并且将永远不会被使用。

检查底层的C源文件SOAP / php_http.c并搜索“跳过一些预定义的头”的名单。

这是一些人报告在某些情况下的问题试图set HostAuthorizationContent-Type和其他标题的原因。

© www.soinside.com 2019 - 2024. All rights reserved.