curl - Soap UI 与 Curl 响应时间差异

标签 curl soapui

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

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

最佳答案

需要考虑的几点:

  • 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 header 字段未定义,意思是 curl根本不发送该字段。如果你运行 curl,你可以检查这个与 --trace-ascii /dev/stdout 选项。
  • 要按原样发送您的 XML(二进制)有效负载,您可以使用 --data-binary 选项,而不是 -d/--data .它将保留换行符和回车符。对于不应该有任何区别的 XML 内容,但这可能取决于所使用的解析器和架构的严格性。
  • 调试时curl请求,从回声站点(如 httpbin)中退回请求很有用,以及启用完整的详细信息 -vvv ,甚至可以使用 --trace*检查发送/接收的确切有效载荷。

  • 应用这些修复,您的 curl命令将如下所示:
    curl -H 'Content-Type: application/soap+xml; charset=UTF-8' \
         -H 'SOAPAction: Some-Action' \
         --data-binary @request.xml \
         <endpoint>
    

    关于curl - Soap UI 与 Curl 响应时间差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47339034/

    相关文章:

    tomcat - 如何在 SoapUI 中测试 Web 套接字项目?

    C Curl 400 错误请求关键字 "on"

    php - 绕过 PHP CURL 2GB 下载限制

    linux - curl/sed 命令没有正确处理输入

    java - 在 SoapUI Groovy 中调用 Java 类

    基于返回项计数的 SoapUI JSONPath 断言

    java - Selenium UnreachableBrowserException - SoapUI Groovy TestStep 中的 "Could not start a new session"

    web-services - HTTP GET 的 cURL 命令

    c++ - 使用 libcurl 访问被拒绝下载文件

    java - 使用 Selenium WebDriver 进行简单测试设置失败