android调用webservice解析Gson数据

Android端代码:

public class CheckActivity extends ActionBarActivity implements View.OnClickListener{

final static String NAME_SPACE = "http://tempuri.org/";
final static String SERVICE_URL = "http://192.168.0.174:8013/Roadflow.asmx";
// 调用的方法
String methodName = "getTask";
String soapAction = "http://tempuri.org/getTask";
EditText edit_1,edit_2;
String on;
String wo;
ListView listView;
List<RoadFlowTaskBean> list;
MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_check);

viewInit();
get();
}
private void viewInit() {
// TODO Auto-generated method stub
listView = (ListView) findViewById(R.id.listView1);
edit_1 = (EditText) findViewById(R.id.edit_1);
edit_2 = (EditText) findViewById(R.id.edit_2);
list = new ArrayList<RoadFlowTaskBean>();
adapter=new MyAdapter(CheckActivity.this, list);
listView.setAdapter(adapter);
TextView textView=(TextView) findViewById(R.id.button1);
textView.setOnClickListener(this);

}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
list.clear();
on = edit_1.getText().toString().trim();
wo = edit_2.getText().toString().trim();
get();
}


private void get() {


new AsyncTask<Void, Void, Void>() {


@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}


@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub


// 使用soap1.1协议创建Envelop对象
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// 实例化SoapObject对象
SoapObject request = new SoapObject(NAME_SPACE, methodName);
/**
* 设置参数,参数名不一定需要跟调用的服务器端的参数名相同,只需要对应的顺序相同即可
* */
request.addProperty("strID", on);
request.addProperty("strStatus", wo);
// 将SoapObject对象设置为SoapSerializationEnvelope对象的传出SOAP消息
envelope.dotNet = true;
envelope.bodyOut = request;
envelope.setOutputSoapObject(request);
new MarshalBase64().register(envelope);
// 创建httpTransportSE传输对象
HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);
try {
// 调用webService
ht.call(soapAction, envelope);

if (envelope.getResponse() != null) {

/*************************************第一种解析*********************/

// Object result=(SoapPrimitive)envelope.getResponse();
// Object result=envelope.getResponse();
// String str=(String)result.toString();
// //ds父对象
// JSONArray jsonArray =new JSONObject(str).getJSONArray("RoadFlow_Task");
// int count=jsonArray.length();
//
//        for(int index=0;index<count;index++){
//                            RoadFlowTaskBean bean=new RoadFlowTaskBean();
//                            
//             String ID=jsonArray.optJSONObject(index).getString("ID").toString();//获得数组里的对象,再根据对象获得字段
//             String Title=jsonArray.optJSONObject(index).getString("Title").toString();//获得数组里的对象,再根据对象获得字段
//             String StepName=jsonArray.optJSONObject(index).getString("StepName").toString();//获得数组里的对象,再根据对象获得字段
//             String SenderName=jsonArray.optJSONObject(index).getString("SenderName").toString();//获得数组里的对象,再根据对象获得字段
//         
//            // String ID1=jsonArray.getJSONObject(index).getString("ID").toString();//获得数组里的对象,再根据对象获得字段
//             
//             bean.setID(ID);
//             bean.setTitle(Title);
//             bean.setStepName(StepName);
//             bean.setSenderName(SenderName);
//             list.add(bean);
//            
//             System.out.println("----------------------"+ID);
//         }
      

// } else {

/*************************************第二种解析*********************/

Object result=(SoapPrimitive)envelope.getResponse();
JSONObject obj = new JSONObject(result.toString());
JSONArray jsonArray = (JSONArray)obj.getJSONArray("RoadFlow_Task");

for (int i = 0; i < jsonArray.length(); i++) {
JSONObject json = jsonArray.getJSONObject(i);
TestDTO.RoadFlowTaskBean test= new TestDTO.RoadFlowTaskBean();
test.setID(json.getString("ID"));
test.setTitle(json.getString("Title"));
list.add(test);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}


// 数据显示
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
adapter.notifyDataSetChanged();
}


}.execute();


}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值