php 添加soapaction,php - 如何在PHP SoapClient中使用soapAction头 - SO中文参考 - www.soinside.com...

我有一个PHP SoapClient PHP,我正在努力工作。 SoapClient验证并且可以获取WSDL,没问题。然后我需要使用WSDL作为端点启动soapAction,但是标头与我需要匹配的演示请求标头不匹配。

具体来说,我缺少soapAction标头,而是在内容类型中设置了一个动作参数。我该如何改变?

我想要生成的标题:

POST /hpq/hpq-service/hpq.wsdl HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: text/xml;charset=UTF-8

SOAPAction: "HPQMemberValidationOperation"

Authorization: Basic EEV0Y2VsbHM898Q4c2dLSjg5aEdYenBLYmQ0akhr

Content-Length: 902

Host: ****

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

我生成的标题:

POST /hpq/hpq-service/hpq.wsdl HTTP/1.1

Host: ***

Connection: Keep-Alive

User-Agent: PHPSoapClient

Content-Type: application/soap+xml; charset=utf-8; action="HPQMemberValidationOperation"

Content-Length: 688

Authorization: Basic EEV0Y2VsbHM898Q4c2dLSjg5aEdYenBLYmQ0akhr

我通过以下PHP代码调用此操作:

$opts = array(

'http'=>array(

'user_agent' => 'PHPSoapClient',

'header' => "Authorization: Basic " . base64_encode("$username:$password"),

),

'ssl' => array(

'ciphers'=>'RC4-SHA',

'verify_peer'=>false,

'verify_peer_name'=>false

),

);

ini_set( "soap.wsdl_cache_enabled", "0" );

$context = stream_context_create($opts);

$params = array(

'stream_context'=>$context,

'cache_wsdl' => WSDL_CACHE_NONE,

'encoding' => 'UTF-8',

'verifypeer' => false,

'verifyhost' => false,

'soap_version' => SOAP_1_2,

'trace' => 1,

'exceptions' => 1,

'connection_timeout' => 180,

);

$client = new SoapClient(WSDL_PATH, $params);

$response = $client->__soapCall('HPQMemberValidationOperation', array($payload), array('location'=>WSDL_PATH));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值