当我使用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消息,因为缺少以下信息:操作。
最佳答案
System.Web.Services.Protocols.SoapHeaderException:WSE012:输入
不是有效的SOAP消息,因为以下信息是
失踪:行动。
=>根据上述例外情况,我可以说您忘记设置Action了。
尝试:
String SOAP_ACTION = "http://stockservice.contoso.com/wse/samples/2005/10/OCRWebServiceAvailablePages";
httppost.setHeader("SOAPAction", SOAP_ACTION);