Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SOAP授权_Php_Authentication_Soap_Authorization - Fatal编程技术网

Php SOAP授权

Php SOAP授权,php,authentication,soap,authorization,Php,Authentication,Soap,Authorization,我尝试使用的web服务有这样一个WSDL文件: 我试图使用“setIkiliAnlasma”服务,但是访问该服务需要身份验证。我有我的凭证,当我对登录服务进行SOAP调用时,它会验证我的凭证 正如所料,当我调用“setIkiliAnlasma”服务时,我得到了一个授权错误。将登录调用提供的授权与我需要使用的主服务结合起来的方法是什么 顺便说一下,我使用的编程语言是PHP,本机的SoapClient函数:在调用soap客户端url时,尝试使用这种方式进行身份验证: 下面是一个在PHP中使用SOAP

我尝试使用的web服务有这样一个WSDL文件:

我试图使用“setIkiliAnlasma”服务,但是访问该服务需要身份验证。我有我的凭证,当我对登录服务进行SOAP调用时,它会验证我的凭证

正如所料,当我调用“setIkiliAnlasma”服务时,我得到了一个授权错误。将登录调用提供的授权与我需要使用的主服务结合起来的方法是什么


顺便说一下,我使用的编程语言是PHP,本机的SoapClient函数:

在调用soap客户端url时,尝试使用这种方式进行身份验证:


下面是一个在PHP中使用SOAPClient进行身份验证的示例-您只需要将其调整为您正在使用的WSDL->

// Setting "trace" will allow us to view the request that we are making, after we have made it.
$objClient = new SoapClient("http://www.somewhere.com/wsdls/some.wsdl", array('trace' => true)); 

// These parameters satisfy this specific remote call.
$arrParameters_Login = array('username' => 'username', 'password' => 'password');

// Invoke the remote call "login()".
$objLogin =  $objClient->login($arrParameters_Login); 

// Grab session ID that this remote call will provide.
$strSessionID = $objLogin->loginReturn->sessionId;

然后,您需要使用在登录响应中发送给您的sessionid/会话代码(可能在头中),它特定于每个WSDL。

您如何进行身份验证?你能举个例子吗?我应该使用WSDL文件提供的登录方法,您可以在wsdl中看到它,或者在下面看到我的答案-添加一些代码作为如何使用Web服务身份验证的示例-我可以看到登录方法,并且该方法的输出是loginResponse-使用我答案中的代码并更新它以匹配您的wsdl…Web服务授权由wsdl中的登录服务完成文件不是通过HTTP身份验证的。是的,Manseuk,你是对的。我正在对
SoapClient::\uu doRequest
使用原始SOAP调用,并使用ApacheAxis2 UUID响应登录调用。该会话id应该在后面的调用中引用。授权后如何进行?