肥皂UI与卷曲响应的差异

时间:2017-11-16 21:05:03

标签: curl soapui

我在我们的一个数据中心托管了使用spring构建的肥皂服务。当我通过SOAP UI进行测试时,我会在1秒或更短的时间内得到响应。但是,当我通过CURL运行相同的请求时,执行时间超过30秒。我正在运行来自同一台机器的两个命令。可能导致这种差异的原因是什么?

curl  -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:"  -d @request.xml <endpoint>

1 个答案:

答案 0 :(得分:3)

需要考虑的一些事项:

  • SOAP请求的媒体类型(Content-Type标头字段)应为application/soap+xml(请参阅SOAP 1.2 specs, end of section 1.3)。如果您的编码是UTF-8,请设置Content-Type: application/soap+xml; charset=UTF-8

  • 您的SOAPAction标头字段未定义,这意味着curl根本没有发送该字段。如果您使用--trace-ascii /dev/stdout选项运行curl,则可以查看此内容。

  • 按原样发送您的XML(二进制)有效负载,您可以使用--data-binary选项,而不是-d/--data。它将保留换行符和回车。对于不应该有任何区别的XML内容,但这可能取决于所使用的解析器和模式的严格程度。

  • 在调试curl请求时,将请求从httpbin等回显网站退回,以及使用-vvv启用完整详细信息非常有用,甚至可以使用{{ 1}}检查发送/接收的确切有效载荷。

应用这些修补程序,您的--trace*命令将如下所示:

curl