如何使用NuSOAP工具包在SOAP请求中设置请求标头

问题描述 投票:0回答:1

谁能告诉我如何在SOAP请求中为订阅密钥添加请求标头。我正在使用NuSOAP工具包进行SOAP调用。设置授权SOAP调用的密钥对我来说似乎很困难。除非我在请求标头中传递订阅密钥,否则无法访问。

我尝试过:

$this->nusoap_client->setHeaders("<soapHeader xmlns='http://test.com/'>
    <Ocp-Apim-Subscription-Key>***mykey***</Ocp-Apim-Subscription-Key>
</soapHeader>");

但是它将密钥添加到soap标头而不是请求标头。

然后我尝试了:

header("Ocp-Apim-Subscription-Key: ***mykey***");

但仍然没有希望,它现在已添加到响应头中。

我正在使用$this->nusoap_client->call()进行SOAP调用,并且得到的响应是

{ "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }

预先感谢。

api soap soap-client nusoap request-headers
1个回答
0
投票

嗯,我自己找到了解决方案。不知道这是否是正确的方法!无论如何,我想在这里发布我的解决方案,它可能对某人有用。

我通过修改nusoap库类文件解决了这个问题。修改功能soap_transport_http,将标头设置为:

$this->setHeader('Ocp-Apim-Subscription-Key', '***myKey***');

可能不是在SOAP请求中修改标头的正确方法,但对我有用。如果您找到更好的解决方案,请回答。

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