0

我正在尝试在 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 请求中缺少什么。

4

2 回答 2

0

原来我需要:

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

  2. 不得不将我的身体包裹在括号中,删除空格,换行符等。这给了我一个适当的回应。

{<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body>body</S:Body></S:Envelope>}
于 2017-08-11T15:44:38.910 回答
0

以防其他人绊倒:对我来说这是公司的代理设置,“localhost”不起作用,但“127.0.0.1”工作得很好。

于 2017-09-27T08:51:25.590 回答