解决方案 »

  1.   

    web端既然有数据库,那你在web服务器加多一些接口给android端调用就可以了啊。
      

  2.   

    我用soap协议访问webservice,webservice修改数据库,但我调用查询操作时,需要把webservice getresponse返回的信息解析成数组List<HashMap<String,Object>>,但我不知道怎样解析,哪位能教教我吗?
      

  3.   

    关于解析,可以xml解析,,,
      

  4.   

    webservice 返回的一般都是xml数据,你去搜搜android库自带的pull解析器的用法。
      

  5.   

    下面是我的代码 主要是android发送请求给webservice,获得其中的find方法(返回值为数组),通过查找shangpin返回SQLserver数据库中有关商品的所有信息。
    public List<HashMap<String, Object>> getfind(String shangpin) {
    SoapObject request = new SoapObject(serviceNameSpace, getFind);
    request.addProperty("shangpin", shangpin);
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
    SoapEnvelope.VER11);
    envelope.bodyOut = request;
    envelope.dotNet = true;
    HttpTransportSE ht = new HttpTransportSE(serviceURL);
    try {
    ht.call(serviceNameSpace + getFind, envelope);
    if (envelope.getResponse() != null) {
    SoapObject result = (SoapObject) envelope.getResponse();
    return parse(result);
    }
    } catch (HttpResponseException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } catch (XmlPullParserException e) {
    e.printStackTrace();
    }
    return null;
    }
    和xml解析不太一样,你说的用pull解析器解析好像不太适合吧
    我找了一个方法来定义解析,是参考别人的,
    private List<HashMap<String, Object>> parse(SoapObject result) {
    // TODO Auto-generated method stub
    List<HashMap<String, Object>> lists = new ArrayList<HashMap<String, Object>>();
    if (result != null) {
    int len = result.getPropertyCount();
    if (len > 0) {
    HashMap<String, Object> map = new HashMap<String, Object>();
    for (int i = 0; i < len; i++) {
    int tag = i / 6;
    switch (tag) {
    case 0:
    map.put("time", result.getProperty(i).toString());
    break;
    case 1:
    map.put("shangpin", result.getProperty(i).toString());
    break;
    case 2:
    map.put("cangku", result.getProperty(i).toString());
    break;
    case 3:
    map.put("jinjia", result.getProperty(i).toString());
    break;
    case 4:
    map.put("number", result.getProperty(i).toString());
    break;
    case 5:
    map.put("totalprice", result.getProperty(i).toString());
    break; default:
    break;
    }
    }
    lists.add(map);
    }
    } return lists;
    }
      

  6.   

    哦,这样啊,希望这个帖子能帮助你http://www.cnblogs.com/zhangdongzi/archive/2011/04/19/2020688.html