Я хочу использовать веб-сервис SOAP из Dynamics NAV 2013 R2 через
http://servername:7047/DynamicsNAV71/WS/CRONUS%20AG/Codeunit/WSInterface
Я могу посетить эту страницу только через Chrome, и он запрашивает у меня учетные данные (которые верны и работают).
Если я вошел в Crome и запустил Postman, я могу использовать его:
POST /DynamicsNAV71/WS/CRONUS%20AG/Codeunit/WSInterface HTTP/1.1
Host: servername:7047
Content-Type: text/xml
SOAPAction: urn:microsoft-dynamics-schemas/codeunit/WSInterface:Process
Cache-Control: no-cache
Postman-Token: 5e640ab7-d0af-a098-0665-da4fa281f892
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsin="urn:microsoft-dynamics-schemas/codeunit/WSInterface">
<soapenv:Header/>
<soapenv:Body>
<wsin:Process>
<wsin:request>INPUT</wsin:request>
<wsin:response>FAKE_RESPONSE</wsin:response>
</wsin:Process>
</soapenv:Body>
</soapenv:Envelope>
и получите в ответ код состояния 200 OK.
Как только я закрываю браузер Chrome и снова отправляю запрос, я получаю статус 401 (неавторизован), поэтому добавляю заголовок авторизации. После этого я получаю статус 400 со следующими заголовками:
POST /DynamicsNAV71/WS/CRONUS%20AG/Codeunit/WSInterface HTTP/1.1
Host: servername:7047
Content-Type: text/xml
SOAPAction: urn:microsoft-dynamics-schemas/codeunit/WSInterface:Process
Authorization: NTLM YWNhbVxncnU6Z3J1MTIzNA==
Cache-Control: no-cache
Postman-Token: 595777b7-5183-38d3-d49b-6bc5d4e3d30e
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsin="urn:microsoft-dynamics-schemas/codeunit/WSInterface">
<soapenv:Header/>
<soapenv:Body>
<wsin:Process>
<wsin:request>INPUT</wsin:request>
<wsin:response>FAKE_RESPONSE</wsin:response>
</wsin:Process>
</soapenv:Body>
</soapenv:Envelope>
Ничего не изменилось, кроме заголовка авторизации, так почему я получаю статус 400? Кто-нибудь может помочь? Если я вошел в систему с Chrome, заголовок авторизации не имеет значения, отправлен или нет ...