当我使用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);

07-25 21:20
查看更多