【问题标题】:Error when calling dynamics ax soap service method from php从php调用动态axsoap服务方法时出错
【发布时间】:2019-08-01 15:05:55
【问题描述】:

我有一个 PHP webapp,需要连接到 dynamics 365 ax soap 服务。

我得到了一个 wsdl url,我试图从那里获取值。

我曾经得到 Forbidden error:608 现在我得到 HTTP code 400 Bad Request

我正在验证、获取令牌并使用我的 POST 方法传递它

POST /soap/services/ webservice?wsdl HTTP/1.1    
Host: domain.sandbox.ax.dynamics.com    
Accept: text/xml    
Connection:Keep-Alive    
Content-type: text/xml    
Authorization: Bearer tokenString    
Soapaction: "http://tempuri.org/webservice/method"    
Content-Length lengthOfXML

服务器响应:

HTTP/1.1 400 Bad Request Cache-Control: private Server:.. Strict-Transport-Security: max-age..; includeSubDomains Set-Cookie:ASP.NET_sessionId=.....;path=/;secure; HttpOnly Set-Cookie: ms-dyn-csrftoken:........ p3p: CP="No P3P policy defined. Read Microsoft privacy ... LinkID=271135" .. 

//my XML that i pass as a curl POSTFIELD
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:i0="http://tempuri.org"  xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" >
<soap:Header>
     <CallContext  xmlns="schemas.microsoft.com/.../datacontracts">
      <Company>some</Company>
       <Language>en-us</Language>
        <MessageId>0</MessageId>
         <PartitionKey>286942</PartitionKey>
     </CallContext>
</soap:Header>

<soap:Body>
   <i0:nameofmethod >
   <parameter>25536</parameter>
   </i0:nameofmethod>
</soap:Body>
</soap:Envelope>

我至少需要获得某种 HTTP 200 OK 的值。我应该获得一个字符串数组。

【问题讨论】:

  • 您是否尝试过使用 Query the Finance and Operations SOAP custom service by using SoapUI 中所述的 SoapUI 测试服务?请edit回答您的问题。
  • 不要用全新的问题更新您的原始问题。如果您设法解决了最初的问题,您可以发布自己问题的答案并将其标记为正确。如果您有新问题,可以将其作为新问题发布。

标签: php xml soap bad-request httpforbiddenhandler


【解决方案1】:

我发现我的错误请求来自于在我的 XML 之前的标头中添加一个字符串。 在我正在搜索的其他论坛的一些答案中,他们建议在 XML 字符串本身之前添加“xmlRequest=”字符串,但我忘记了我添加了那个,这导致了一个问题。 我还用 UTF 代码删除了第一行字符串

<?xml version="1.0" encoding="utf-8" ?>

并直接添加了肥皂信封。 我使用 SOAPUI 来帮助确保结构正确。

虽然我在调用我的方法时仍然遇到问题,但实际上有不同的错误

Forbidden 1317 System.ComponentModel.Win32Exception The specified account does not exist

我希望我能找到解决办法。使用不同的 POST。

【讨论】:

    猜你喜欢
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多