php - 对 Web 服务的 SOAP 请求问题
问题描述
我必须使用带有 POST 方法的 SOAP 向 Web 服务发出请求,并且我有一个他们提供的示例 XML,我必须将其用于对 WS 的请求,并且没有更多关于如何做到这一点的信息?我尝试访问的 Web 服务用于身份验证,我尝试的 PHP 代码包括登录名和密码信息。
<?php
$usuario = "login";
$password = "pass";
$strXml = "<soapenv:Envelope xmlns:soapenv=\'http://schemas.xmlsoap.org /soap/envelope/\' xmlns:guia=\'link to .wsdl\'>
<soapenv:Header/>
<soapenv:Body>
<guia:infoUser>
<guia:nif>userNIF</guia:nif>
</guia:infoUser>
</soapenv:Body>
</soapenv:Envelope>";
$wsdl = 'LINK TO WSDL???.wsdl';
$namespace = 'Here i think i need to put the link that goes to the part of auth on the wsdl';
$credentials = (object)array(
'login' => $usuario,
'pass' => $password
);
$auth_values = new SoapVar($credentials, SOAP_ENC_OBJECT);
$header = new SoapHeader($namespace, "authGUIA", $auth_values);
// set client, headers, and call function
$client = new SoapClient($wsdl, array('trace' => true));
$client->__setSoapHeaders(array($header));
我已经尝试了很多东西,我不知道,还有什么可以尝试的?我做了很多测试,有些人会告诉我“您必须使用 POST 而不是 GET 方法,因为密码将存储在日志中”。
如果有人可以为我的问题提供解释/解决方案,以防我的某些代码是正确的,我将不胜感激。
谢谢。
解决方案
推荐阅读
- amazon-web-services - AWS 云上的 Python 管道
- aws-api-gateway - requestTemplates 和 responseTemplates 在 AWS API Gateway SAM 模板中不起作用
- intellij-idea - 再次单击按钮时重新启动运行或调试模式
- python - 授权代码流中的错误请求 Spotify
- java - 将数组作为参数传递;使用扫描器类在 Java 中使用用户输入设置数组
- python - 如何在 Python 中连接多个(超过 2 个)二维数组?
- azure-devops - Azure devops 管道:无法使用 SourceVersion 变量部署特定变更集
- html - 如何将元素与容器的顶部和底部对齐?
- javascript - 是否可以将 D3.tree() 与包含父母而不是孩子的数据集一起使用?
- environment-variables - Postman 中的环境变量