2014-09-05 544 views
0

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

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 

回答

0

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

所有HTTP认证方案都有某种用户标识和密码。

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

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

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

0

我不认为这个问题与用户/密码相关,因为你会得到一个403(permision拒绝)而不是404(没有找到),以防万一认证信息有问题。它必须与URL相关。你确定完整的URL是正确的吗?您应该从URL路径中取出“?wsdl”,因为这指向WSDL的位置而不是Webservice端点。