使用curl调用SOAP Web服务

时间:2014-09-05 17:45:56

标签: linux curl

我需要使用curl调用SOAP Web服务。 该服务需要一个用户名(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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

答案 1 :(得分:0)

我不认为问题与用户/通行证有关,因为如果认证信息出现问题,您将获得403(拒绝权限)而不是404(未找到)。它必须与URL相关。您确定完整的网址是否正确?您应该从URL路径中取出“?wsdl”,因为这指向WSDL的位置而不是Webservice端点。