首页 > 解决方案 > 对 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 方法,因为密码将存储在日志中”。

如果有人可以为我的问题提供解释/解决方案,以防我的某些代码是正确的,我将不胜感激。

谢谢。

标签: phpwebsoapservice

解决方案


推荐阅读