【问题标题】:Calling SOAP webservice using curl使用 curl 调用 SOAP Web 服务
【发布时间】:2023-04-08 02:35:01
【问题描述】:

我需要使用 curl 调用 SOAP 网络服务。 该服务需要用户名(user1)但不需要密码。当我执行以下命令时,它要求输入密码,当我单击 ENTER 时,它会引发“404”错误。相同的请求在 SOAPUI 工具上成功传递。

curl -v -H "Content-Type: application/octet-stream; charset=utf-8" \
     -H "SOAPAction:" \
     -d @soap.csv \
     -X POST https://s.net/sotest/FileAttachmentService?wsdl \
     -u user1

【问题讨论】:

    标签: linux curl


    【解决方案1】:

    curl 的 -u 参数指定 HTTP 身份验证的用户/密码。

    所有 HTTP 身份验证方案都有某种用户 ID 和密码。

    您声称只需要提供用户名表明用户名实际上是您的 SOAP 调用的参数,而不是用于 HTTP 身份验证。

    我看到的另一个潜在问题是 SOAP 实际上只是基于 HTTP 的 XML,大多数 SOAP 服务通常使用text/xmlapplication/xml MIME 内容类型,而不是application/octet-stream

    所以,请与运行您的 SOAP 服务的人交谈。了解您是否应该使用 HTTP 身份验证或在 SOAP 请求中包含用户名参数,以及 SOAP 请求的 MIME 类型。

    【讨论】:

      【解决方案2】:

      我认为问题与用户/通行证无关,因为如果身份验证信息有问题,您会得到 403(权限被拒绝)而不是 404(未找到)。它必须与 URL 相关。您确定完整的 URL 是正确的吗?您应该从 URL 路径中取出“?wsdl”,因为它指向 WSDL 的位置,而不是 Web 服务端点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-19
        • 1970-01-01
        相关资源
        最近更新 更多