我的要求是从Android调用Web服务并以良好的方式显示结果。
但是在Web服务的WSDL中我找不到SOAPAction
。 WSDL看起来像这样:
<operation name="getStudentList">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
有没有办法在WSDL中的其他一些地方找到SOAPAction
?我可以调用Web服务并在没有SOAPAction
的情况下获得结果吗?
答案 0 :(得分:6)
SOAP 1.1通过HTTP需要SOAPAction
,但如果您没有发送正确的标头,很难说您的Web服务的行为是什么。如果Web服务缺少SOAPAction
(或者如果它具有意外值),或者它可能根本不执行任何操作,则Web服务可能会返回错误。
WSDL是在SOAPAction
内找到<soap:operation>
使用的值的地方。如果没有为某个操作指定它,或者就像您发布的示例(soapAction=""
)那样,通常需要将其添加到请求标题中:
SOAPAction: ""
尝试使用空引号字符串,它应该可以工作。