从WSDL中查找SOAPAction

时间:2013-01-11 08:56:24

标签: android web-services soap wsdl android-ksoap2

我的要求是从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的情况下获得结果吗?

1 个答案:

答案 0 :(得分:6)

SOAP 1.1通过HTTP需要SOAPAction,但如果您没有发送正确的标头,很难说您的Web服务的行为是什么。如果Web服务缺少SOAPAction(或者如果它具有意外值),或者它可能根本不执行任何操作,则Web服务可能会返回错误。

WSDL是在SOAPAction内找到<soap:operation>使用的值的地方。如果没有为某个操作指定它,或者就像您发布的示例(soapAction="")那样,通常需要将其添加到请求标题中:

SOAPAction: ""

尝试使用空引号字符串,它应该可以工作。