SoapUi请求返回404但curl工作正常

时间:2017-08-10 15:19:55

标签: soap soapui ready-api

我试图在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>
}' 

这会返回我期望的正确回复。但是,当我在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>

此请求返回404 Not Found。不确定URL编码是否重要,但是当我手动添加它时,它会给我一个内部服务器错误。我在soapui请求中遗漏了什么。

2 个答案:

答案 0 :(得分:0)

原来我需要:

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

  2. 不得不把我的身体包在括号中,删除空格,换行等等。这给了我一个正确的回应。

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

答案 1 :(得分:0)

如果有其他人弄明白:对我来说这是公司的代理设置,&#34; localhost&#34;没有工作,但&#34; 127.0.0.1&#34;工作得非常好。