当我使用SoapUI调用this web service时,我得到了正确的响应但是当我在android中实现它时,我得到以下异常,
system.web.services.protocols.soapheaderexception(缺少某些信息)。
这就是我试过的,
HttpPost httppost = new HttpPost("http://www.ocrwebservice.com/services/OCRWebService.asmx");
StringEntity se = new StringEntity(SOAPRequestXML,HTTP.UTF_8);
se.setContentType("text/xml");
httppost.setHeader("Content-Type", "text/xml;charset=UTF-8");
httppost.setEntity(se);
HttpClient httpclient = new DefaultHttpClient();
BasicHttpResponse httpResponse =
(BasicHttpResponse) httpclient.execute(httppost);
HttpEntity resEntity = httpResponse.getEntity();
我尝试过其他组合也喜欢,
httppost.setHeader("Accept-Charset","utf-8")
和
httppost.setHeader("Content-Type","application/soap+xml;charset=UTF-8")
但没有任何效果。
错误说,
System.Web.Services.Protocols.SoapHeaderException:WSE012:输入不是有效的SOAP消息,因为缺少以下信息:action。
答案 0 :(得分:2)
System.Web.Services.Protocols.SoapHeaderException:WSE012:输入 不是有效的SOAP消息,因为以下信息是 失踪:行动。
=>根据上述例外情况,我可以说你忘了设置动作。
尝试:
String SOAP_ACTION = "http://stockservice.contoso.com/wse/samples/2005/10/OCRWebServiceAvailablePages";
httppost.setHeader("SOAPAction", SOAP_ACTION);