安辉 2020-05-05
目的: 用于andorid app与远端服务器交互
Web Service基础:
http://ws.webxml.com.cn/ 是一个提供WebService服务网站,调用相应的方法会返回对应的xml文件。
也可以通过iis发布c#的Web Service服务
下面是andorid内部获取Web Service的数据的方法
String nameSpace="http://WebXml.com.cn/";//命名空间 String methodName="getRegionProvince";//调用方法名称 String soapAction="http://WebXml.com.cn/getRegionProvince";//SOAP Action上面两者结合 String endPoint="http://ws.webxml.com.cn/WebServices/WeatherWS.asmx";//提供webService的地址 SoapObject rpc=new SoapObject(nameSpace,methodName); //加入参数 //rpc.addProperty("id",id) SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.bodyOut=rpc; envelope.dotNet=true; //设置是否调用于doNet开发的WebService envelope.setOutputSoapObject(rpc); //等价于envelope.bodyOut=rpc HttpTransportSE transport=new HttpTransportSE(endPoint); try { transport.call(soapAction,envelope); }catch (Exception e) { e.printStackTrace(); } SoapObject object=(SoapObject) envelope.bodyIn;//获取返回的数据 result=object.getProperty(0).toString();//获取返回的结果 //线程传输数据 Message mm=Message.obtain(); mm.what=1; handler.sendMessage(mm);
上述操作的配套线程代码
//线程类 class TTT1 extends Thread { @Override public void run() { GetNew(); } } //线程实例 TTT work=new TTT(); work.start(); //提到数据之后的操作 private Handler handler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case 1: //具体操作 result break; } } };
在c#当中访问当地数据库方法
//数据库的信息 string connStr = "server =.;database=News;uid=sa;pwd=123456"; try { SqlConnection conn = new SqlConnection(connStr); conn.Open(); conn.Close(); return true; } catch { return false; }
查询操作
//数据库的信息 string connStr = "server =.;database=News;uid=sa;pwd=123456"; try { string sqlStr = "select * from News"; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(sqlStr, new SqlConnection(connStr)); da.Fill(ds); return ds; } catch { return null; }
其实用EF框架也挺好的
请看这里