使用SOAP PHP对WSDL服务器进行身份验证

麦克风

我被要求使用未记录的WebService进行身份验证,而我一直在努力使其正常工作。这是我到目前为止所做的。

$client = new SoapClient("http://x.x.x.x/dispatch/AuthenticationWebService.asmx?WSDL");
var_dump($client->__getFunctions());
echo "<br>";
var_dump($client->__getTypes()); 

$a["channelType"] = "x";
$b["userName"] = "a";
$c["password"] = "b";

var_dump($a);
var_dump($b);
var_dump($c);

try {
        print($client->__soapCall('Authenticate', array($a, $b, $c)));
} catch (SoapFault $exception) {
        echo $exception;
}

这将返回:

array(2) { [0]=> string(59) "AuthenticateResponse Authenticate(Authenticate $parameters)" [1]=> string(59) "AuthenticateResponse Authenticate(Authenticate $parameters)" } 

array(5) { [0]=> string(92) "struct Authenticate { BookingChannelType channelType; string userName; string password; }" [1]=> string(25) "string BookingChannelType" [2]=> string(73) "struct AuthenticateResponse { AuthenticationResult AuthenticateResult; }" [3]=> string(116) "struct AuthenticationResult { AuthenticationError Error; string ErrorMessage; boolean Succeeded; string Token; }" [4]=> string(26) "string AuthenticationError" } 


array(1) { ["channelType"]=> string(3) "Web" } array(1) { ["userName"]=> string(10) "RouteMatch" } array(1) { ["password"]=> string(6) "Rm2012" } 


SoapFault exception: [soap:Server] Server was unable to process request. ---> Value cannot be null. Parameter name: userName in /var/www/WebService/test.php:76 Stack trace: #0 /var/www/WebService/test.php(76): SoapClient->__soapCall('Authenticate', Array) #1 {main}

对于我的一生,我不明白为什么这行不通?我也尝试了其他几种组合。

如果我改变

$a["channelType"] = "Web";

到其他的东西,例如

$a["channelType"] = "junk"; 

然后说...

SoapFault exception: [soap:Client] Server was unable to read request. ---> There is an error in XML document (2, 225). ---> Instance validation error: 'Junk' is not a valid value for BookingChannelType. in /var/www/WebService/test.php:71 Stack trace: #0 /var/www/WebService/test.php(71): SoapClient->__soapCall('Authenticate', Array) #1 {main} 

这向我表明数据正在传递到Web服务,但是我不知道为什么userName和密码返回为null?

我也尝试过:

try {
        print($client->__soapCall('Authenticate', array($a, "a", "b")));
} catch (SoapFault $exception) {
        echo $exception;
}

无济于事..它仍然说userName为null。

我要去哪里错了?

麦克风
$SoapCallParameters["channelType"] = "x";$SoapCallParameters["userName"] = "a";$SoapCallParameters["password"] = "b";

try {
        $obj = $client->__soapCall("Authenticate", array('parameters'=>$SoapCallParameters));
        var_dump($obj);
} catch (SoapFault $exception) {
        echo $exception;
}

经过一番调查,wsdl Web服务是一个.NET服务。这意味着您需要在传递值的同时添加“参数”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检查用户是否使用 PHP 在服务器上通过 Firebase 身份验证进行身份验证?

来自分类Dev

无法使用Windows身份验证向SMTP服务器进行身份验证

来自分类Dev

使用Google身份验证在SSH服务器上进行两因素身份验证

来自分类Dev

使用服务帐户进行GCP服务器到服务器的身份验证

来自分类Dev

使用集成Windows身份验证从HTTP服务器将WSDL导入soapUI

来自分类Dev

在身份服务器中使用cookie和令牌进行共享身份验证

来自分类Dev

.NET Windows控制台通过php Web服务器进行身份验证并安全使用REST

来自分类Dev

使用OAuth 2.0和Google API进行服务器到服务器身份验证的示例

来自分类Dev

使用OAuth 2.0和Google API进行服务器到服务器身份验证的示例

来自分类Dev

是否可以使用CAS服务器对Atlassian Crowd用户进行身份验证?

来自分类Dev

使用解析服务器进行数字身份验证

来自分类Dev

使用Firebase应用程序密钥对服务器进行身份验证

来自分类Dev

脚本使用Gmail发送邮件:无法在SMTP服务器上进行身份验证

来自分类Dev

如何使用邮件ID而不是用户名对ldap服务器进行身份验证

来自分类Dev

使用libssh进行ssh公钥身份验证的服务器

来自分类Dev

使用对烧瓶服务器的Ajax调用进行登录身份验证(管道断开)

来自分类Dev

如何使用android中的登录凭据对服务器进行身份验证?

来自分类Dev

无法使用gmail对SMTP服务器进行身份验证错误

来自分类Dev

我们如何使用Cake build对安全的NuGet服务器进行身份验证?

来自分类Dev

Graphdb.js Node.js-使用GraphDB进行节点服务器身份验证

来自分类Dev

在Azure Function中使用JWT进行无服务器SignalR身份验证

来自分类Dev

如何使用Blazor服务器对用户进行身份验证

来自分类Dev

无法使用远程服务器在本地进行身份验证

来自分类Dev

如何使用邮件ID而不是用户名对ldap服务器进行身份验证

来自分类Dev

在iOS中使用NSURLSessions对服务器API进行oAuth2身份验证

来自分类Dev

如何使用android中的登录凭据对我的服务器进行身份验证?

来自分类Dev

icCube-如何使用Apache Web服务器对icCube进行身份验证

来自分类Dev

使用Linux服务器对Windows设备进行身份验证是否可行/可行?

来自分类Dev

是否可以使用Google Calendar API对服务器进行身份验证?

Related 相关文章

  1. 1

    检查用户是否使用 PHP 在服务器上通过 Firebase 身份验证进行身份验证?

  2. 2

    无法使用Windows身份验证向SMTP服务器进行身份验证

  3. 3

    使用Google身份验证在SSH服务器上进行两因素身份验证

  4. 4

    使用服务帐户进行GCP服务器到服务器的身份验证

  5. 5

    使用集成Windows身份验证从HTTP服务器将WSDL导入soapUI

  6. 6

    在身份服务器中使用cookie和令牌进行共享身份验证

  7. 7

    .NET Windows控制台通过php Web服务器进行身份验证并安全使用REST

  8. 8

    使用OAuth 2.0和Google API进行服务器到服务器身份验证的示例

  9. 9

    使用OAuth 2.0和Google API进行服务器到服务器身份验证的示例

  10. 10

    是否可以使用CAS服务器对Atlassian Crowd用户进行身份验证?

  11. 11

    使用解析服务器进行数字身份验证

  12. 12

    使用Firebase应用程序密钥对服务器进行身份验证

  13. 13

    脚本使用Gmail发送邮件:无法在SMTP服务器上进行身份验证

  14. 14

    如何使用邮件ID而不是用户名对ldap服务器进行身份验证

  15. 15

    使用libssh进行ssh公钥身份验证的服务器

  16. 16

    使用对烧瓶服务器的Ajax调用进行登录身份验证(管道断开)

  17. 17

    如何使用android中的登录凭据对服务器进行身份验证?

  18. 18

    无法使用gmail对SMTP服务器进行身份验证错误

  19. 19

    我们如何使用Cake build对安全的NuGet服务器进行身份验证?

  20. 20

    Graphdb.js Node.js-使用GraphDB进行节点服务器身份验证

  21. 21

    在Azure Function中使用JWT进行无服务器SignalR身份验证

  22. 22

    如何使用Blazor服务器对用户进行身份验证

  23. 23

    无法使用远程服务器在本地进行身份验证

  24. 24

    如何使用邮件ID而不是用户名对ldap服务器进行身份验证

  25. 25

    在iOS中使用NSURLSessions对服务器API进行oAuth2身份验证

  26. 26

    如何使用android中的登录凭据对我的服务器进行身份验证?

  27. 27

    icCube-如何使用Apache Web服务器对icCube进行身份验证

  28. 28

    使用Linux服务器对Windows设备进行身份验证是否可行/可行?

  29. 29

    是否可以使用Google Calendar API对服务器进行身份验证?

热门标签

归档