首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webservices Android soap

Webservices Android soap
EN

Stack Overflow用户
提问于 2012-12-27 06:15:07
回答 1查看 295关注 0票数 0

如何使用WebService?这是我的代码:

代码语言:javascript
复制
WebServiceParams ws = new WebServiceParams(context);

    SoapObject request = new SoapObject(ws.getWSNameSpace(), ws.getWSHelloMethod());

    SoapSerializationEnvelope soapSerializationEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    soapSerializationEnvelope.setOutputSoapObject(request);

    request.addProperty("name", "Charly");

    try {
        HttpTransportSE httpTransportSE = new HttpTransportSE(ws.getWSUrl());
        httpTransportSE.debug = true;

        httpTransportSE.call(ws.getWSNameSpace() + ws.getWSLoginMethod(), soapSerializationEnvelope);

        String xmlResult = soapSerializationEnvelope.getResponse().toString();

        return null;
    } catch (Exception e) {
        e.printStackTrace();
        return e;
    }

我得到了soapFault faultcode soapClient faultstring解组错误意外元素uri:"",local:"name“预期元素为<{}request>

webservice的主体部分是:

代码语言:javascript
复制
<request>
      <name>?</name>
</request>

如何编写请求标记并在名称内发送它?

EN

回答 1

Stack Overflow用户

发布于 2012-12-27 06:48:35

我不知道你是不是在用图书馆。我能够使用Ksoap2实现这一点。

这里有一个示例。希望能有所帮助。

代码语言:javascript
复制
public static int getTotalRows(){
    SoapObject request = new SoapObject(Variables.WEBSERVICE_NAMESPACE,    Variables.METHOD_GETDEALS_TOTAL);
    SoapSerializationEnvelope env = new     SoapSerializationEnvelope(SoapEnvelope.VER11);
    env.dotNet = true;
    env.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = new      HttpTransportSE(Variables.WEBSERVICE_URL);
    int totalRows = 0;

    try {
        androidHttpTransport.call(Variables.SOAP_ACTION_GETDEALS_TOTALROWS, env);
        SoapPrimitive response = (SoapPrimitive)env.getResponse();
        totalRows = Integer.valueOf(response.toString());
        Log.i(Variables.TAG, response.toString());
        return totalRows;
    } catch (IOException e) {
        e.printStackTrace();
        return totalRows;
    } catch (XmlPullParserException e) {
        e.printStackTrace();
        return totalRows;
    } catch (NumberFormatException e) {
        e.printStackTrace();
        return totalRows;
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
        return totalRows;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14046908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档