Android:WebService使用实例

最近刚刚开始学习使用WebService的方法进行服务器端数据交互,发现网上的资料不是很全,,

目前就结合收集到的一些资料做了一个小例子和大家分享一下~

JAVA ME

包 下载地址

->build path->configure build path–

同时,只添加jar包肯能是不够的,需要添加class folder,即可以再工程的libs文件夹中加入下载的KSOAP包,如图:

环境配好之后可以用下面

//命名空间;);

//获得序列化的EnvelopeSoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut=request;

//请求URL;//Android传输对象AndroidHttpTransport transport=new AndroidHttpTransport(serviceURL);transport.debug=true;

transport.call(serviceNameSpace+getWeatherbyCityName, envelope);

第七步:解析返回数据:

){ return parse(envelope.bodyIn.toString()); }

调用方法,点进去之后可以看到调用时需要输入的参数,当然有的不需要参数,例如:getSupportProvince ,而getSupportCity需要输入查找的省份名,getWeatherbyCityName 需要输入查找的城市名。接下来我们就利用这三个接口获得数据,并做出显示:

获得本天气预报Web Service支持的洲,国内外省份和城市信息:

public class MainActivity extends Activity {// WSDL文档中的命名空间private static final String targetNameSpace = "";// WSDL文档中的URLprivate static final String WSDL = "?wsdl";// 需要调用的方法名(获得本天气预报Web Services支持的洲、国内外省份和城市信息)private static final String getSupportProvince = "getSupportProvince";private List<Map<String,String>> listItems;private ListView mListView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listItems = new ArrayList<Map<String,String>>();mListView = (ListView) findViewById(R.id.province_list);new NetAsyncTask().execute();mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {String mProvinceName = listItems.get(position).get("province");Log.d("ProvinceName", mProvinceName);Intent intent = new Intent();intent.putExtra("Pname", mProvinceName);intent.setClass(MainActivity.this, CityActivity.class);startActivity(intent);}});}class NetAsyncTask extends AsyncTask<Object, Object, String> {@Overrideprotected void onPostExecute(String result) {if (result.equals("success")) {//列表适配器SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, listItems, R.layout.province_item,new String[] {"province"}, new int[]{R.id.province});mListView.setAdapter(simpleAdapter);}super.onPostExecute(result);}@Overrideprotected String doInBackground(Object… params) {// 根据命名空间和方法得到SoapObject对象SoapObject soapObject = new SoapObject(targetNameSpace,getSupportProvince);// 通过SOAP1.1协议得到envelop对象SoapSerializationEnvelope envelop = new SoapSerializationEnvelope(SoapEnvelope.VER11);// 将soapObject对象设置为envelop对象,传出消息envelop.dotNet = true;envelop.setOutputSoapObject(soapObject);// 或者envelop.bodyOut = soapObject;HttpTransportSE httpSE = new HttpTransportSE(WSDL);// 开始调用远程方法try {httpSE.call(targetNameSpace + getSupportProvince, envelop);// 得到远程方法返回的SOAP对象SoapObject resultObj = (SoapObject) envelop.getResponse();// 得到服务器传回的数据int count = resultObj.getPropertyCount();for (int i = 0; i < count; i++) {Map<String,String> listItem = new HashMap<String, String>();listItem.put("province", resultObj.getProperty(i).toString());listItems.add(listItem);}} catch (IOException e) {e.printStackTrace();return "IOException";} catch (XmlPullParserException e) {e.printStackTrace();return "XmlPullParserException";}return "success";}}}于是夜莺会在黎明到来之前勇敢的将胸膛顶住蔷薇的刺,

Android:WebService使用实例

相关文章:

你感兴趣的文章:

标签云: