首页 > 解决方案 > 如何使用 NuSOAP 工具包在 SOAP 请求中设置请求标头

问题描述

谁能告诉我如何在 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." }

提前致谢。

标签: apisoapsoap-clientnusoaprequest-headers

解决方案


好吧,我自己找到了解决方案。不知道这样对不对!无论如何,我想在这里发布我的解决方案,它可能对某人有用。

我通过修改 nusoap 库类文件解决了这个问题。修改函数soap_transport_http以将标题设置为:

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

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


推荐阅读