wustguangh |分类标签:Android 2015-01-31

Android使用KSoap2如何以json方式请求WebService

Android使用KSoap2包访问WebService介绍KSoap2包在Android项目中的基本用法,但如果希望使用KSoap2以json方式请求WebService如何实现呢?

满意答案

wustguangh 19级 2015-01-31 08:33:02

下面的代码使用json方式请求WebService:

    public String doSetObject() throws JSONException {
        Log.i("[WebService]", "doSetObject");
        String rs = "";
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME2);
        JSONObject json = new JSONObject();
        json.put("name", "milkmidi");
        json.put("age", "30");
        request.addProperty("json", json.toString());
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        try {
            androidHttpTransport.call(MemberLogin_SOAP_ACTION, envelope);
            SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
            rs = result.toString();
        } catch (Exception e) {
            TextView mMsgTxt = (TextView) (findViewById(Sanzond.Common.R.id.mMsgTxt));
            mMsgTxt.setText(e.toString());
        }
        JSONObject rsJson = new JSONObject(rs);
        return rsJson.getString("name") + "," + rsJson.getString("age");
    }

使用json是经常使用的方式,KSoap2也为我们提供了便捷的途径,只需要调用SoapObject对象的addProperty函数时将第一个参数设置为“json”,第二个参数是对应的json数据对象。再将这个SoapObject对象作为SoapSerializationEnvelope的成员函数setOutputSoapObject的参数使用。

其他回答(0)

相关知识

相关文章更多