SoapUi 请求 returns 404 但 curl 工作正常

SoapUi request returns 404 but curl works fine

我正在尝试在 ReadyAPI 中使用 API,但它对我不起作用。当我通过 CURL 发出请求时,它工作正常。任何帮助,将不胜感激。

这是通过 Curl 请求的格式示例,结尾部分是 URL 编码的:

curl -k -X POST https://myHost.test/999299/profile/SAML2/SOAP/https%3A%2F%2FmyHost.test-999299 -H 
"Content-Type: text/xml" -d '{
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        body
    </S:Body>
</S:Envelope>
}' 

这 returns 是我期望的正确回应。然而,当我在 SoapUI 中使用它并从 URL 输入一个新的 REST 服务时,它删除了 URL 编码并形成这样的请求:

POST https://myHost.test/999299/profile/SAML2/SOAP/https://myHost.test-999299 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml
Content-Length: 555
Host: myHost.test
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_102)

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        body
    </S:Body>
</S:Envelope>

此请求 returns 未找到 404。不确定 URL 编码是否重要,但是当我手动将其添加回去时,它会给我一个内部服务器错误。我在 soapui 请求中缺少什么。

原来我需要:

  1. 将资源字符串改回 URL 编码字符串 https%3A%2F%2FmyHost.test-999299

  2. 必须将我的 body 括在方括号中,删除空格、换行符等。这给了我一个正确的回应。

{<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body>body</S:Body></S:Envelope>}

以防其他人遇到这个问题:对我来说,这是公司的代理设置,"localhost" 不起作用,但“127.0.0.1”效果很好。