亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

禁止通過 PHP Curl 在 Dynamics 365 AX 上調用方法

禁止通過 PHP Curl 在 Dynamics 365 AX 上調用方法

PHP
HUH函數 2021-11-13 10:38:09
我正在嘗試通過 PHP curl 通過 WSDL 從動態 SOAP 調用方法。我的 webapp 和 SOAPUI 都收到此錯誤??赡苁鞘裁磫栴}呢?從具有相同憑據的 .NET 測試程序訪問時,它工作正常。剛剛面臨 PHP 方面的問題,說禁止使用 1317 代碼。指定的帳號不存在我一直在嘗試調用該方法并面臨不同的問題,我遇到的最后一個問題是這個問題。我想也許用戶代理我改變了它我使用了 SOAPUI。一樣。我所知道的是用戶已在 Azure AD 中注冊,并且應該擁有該應用程序的授權。POST是POST /soap/services/servicemethodname?wsdl HTTP/1.1 Host: domainname.sandbox.ax.dynamics.com Accept: text/xml Accept-Encoding: gzip,deflate Connection: Keep-Alive Content-type: text/xml User-Agent: Apache-HttpClient Authorization: Bearer longTokenStringSoapaction: "http://tempuri.org/webservice/method" Content-Length: 795 回應是 HTTP/1.1 500 Internal Server Error Cache-Control: private  Content-Type: text/xml; charset=utf-8  Server: Microsoft-IIS/10.0  Strict-Transport-Security: max-age=31536000; includeSubDomains  Set-Cookie: ASP.NET_SessionId=hghtgkuhlihkjg; path=/; secure;  HttpOnly Set-Cookie:  ms-dyn-csrftoken= someTokenSTring; path=/; secure  ms-dyn-fqhn:  ms-dyn-namespace: namespace  ms-dyn-tenant: tenantidstring  ms-dyn-role:  ms-dyn-aid: aidString  X-Powered-By: ASP.NET  X-Content-Type-Options: nosniff  X-Frame-Options: SAMEORIGIN  p3p: CP="No P3P policy defined. Read the Microsoft privacy statement at https://go.microsoft.com/fwlink/?LinkId=271135"  Strict-Transport-Security: max-age=31536000;  includeSubDomains Date: Thu, 01 Aug 2019 19:24:52 GMT Content-Length: 1112  a:ForbiddenForbidden1317System.ComponentModel.Win32ExceptionThe specified account does not exist0-2147467259我需要能夠無錯誤地調用該方法并獲取它發送的值。
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

好吧,終于找到了解決方案。它有助于閱讀有關您使用的類和使用的不同系統的文檔。就我而言,我試圖將我的應用程序與 microsoft dynamics 365 ax 集成,所以我也必須仔細閱讀。

我閱讀了很多文件,其中一些與不同的動態服務相關,但這個幫助最大

由于soap服務需要授權標頭,因為他們使用的是Windows身份驗證,我們需要從oAuth鏈接中獲取令牌。

https://login.windows.net/$tenantDomainName/oauth2/token

PS:我從github PHPConsoleApplication知道的 oauth2 鏈接

我使用 PHP CURL 來獲取我的授權令牌,然后使用 PHP 的 SoapClient 類創建了一個客戶端。

確保在標頭中添加授權令牌,如下所示:

$arrayOpt = array(    

'stream_context'  => stream_context_create(

                            array('http' =>'Authorization: Bearer tokenString')

 ));


$client = new SoapClient($wsdl, $arrayOpt);


$response = $client->serviceMethod($parameters);


var_dump($response);

您將獲得該方法的值。


查看完整回答
反對 回復 2021-11-13
  • 1 回答
  • 0 關注
  • 129 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號