• Android中的网络编程


    基础知识

    • 使用C#进行WebService服务器端开发
    • 使用JAVA进行WebService客户机端开发

    WebService

    目的: 用于andorid app与远端服务器交互

    Web Service基础:

    • Web Service的数据格式XML
    • 面向服务的架构SOA
    • 简单对象访问协议:SOAP(HTTP底层就是SOAP协议)
    • 服务描述:WSDL(参数,操作,返回值)
    • 网上自动查找WebService:UDDI

    使用方法

    http://ws.webxml.com.cn/ 是一个提供WebService服务网站,调用相应的方法会返回对应的xml文件。
    image.png
    也可以通过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框架也挺好的

    具体实例

    请看这里

  • 相关阅读:
    vue与后台交互之post用法
    django框架两个使用模板实例
    917,仅仅反转字母(简单)
    836,矩形重叠 (简单)
    860,柠檬水找零(简单)
    使用类创建对象后找不到的问题
    8_19 数据库
    8_16 MySQL数据库一
    Mysql的安装与配置
    文件操作中,使用递归退出不了。
  • 原文地址:https://www.cnblogs.com/xxhao/p/12832055.html
Copyright © 2020-2023  润新知