android三种传输方案分析+一个注册登录例子

小虾米 阅读:631 2021-04-01 10:05:06 评论:0

android三种传输方案分析+一个注册登录例子

1:三种传输方式的分析。

 

Socket传输

Web服务

Post,get获取数据方式

网络实现条件

端口:特定端口

协议:TCP,UDP

(目前无线网络非80端口的支持度低。目前移动梦网只支持wap和http协议)

端口 80

协议是http

端口 80

协议是http

使用范围

数据量大,格式简单,且实时性要求高的传输

标准的Web服务接口,接口固定

http形式,接口固定

传输优缺点

速度快,数据量小

速度一般,数据量大

速度一般,数据量一般

传输格式

自定义数据格式

SOAP

Json

开发要求

客户端和服务器端:数据拼接,解析,数据完整验证

开发人员技术要求高

客户端:使用第三方web服务组件,拼接参数,解析回馈数据,过程复杂。

服务器端:创建web服务

开发人员技术要求:一般

客户端:直接调用android自带的json包解析json数据。过程简单

服务器端:生成基于httpHandler的ashx文件接口

开发人员的技术要求:低

综合成本

一般



综合以上分析:选择json+httphandler 的传输方式

2  登陆和注册两个接口实现

2.1 登陆接口实现

   接口定义

  http://192.168.1.1/gointel/UserH ... ;PassWord=xuwenbing

反馈的json格式:

{ActionResult:false,Reason:""账号和密码不一致""}

 

?

代码片段,双击复制

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

    /*用户登陆

     * 服务器检测用户的账号和密码是否一致,并返回结果

     * */

    public static Boolean Login(String Account ,String PassWord)

    {

        //Step One  从服务器接口中获取当前账号和密码的配对情况

        Boolean actionResult=false;   

        String httpUrl="http://221.181.127.43/gointel/UserHandler.ashx?Action=login&Account="+Account+"&PassWord="+PassWord;

        //httpGet 连接对象

        HttpGet httpRequest =new HttpGet(httpUrl);

          

        try

        {

            //取得HttpClinet对象

            HttpClient httpclient=new DefaultHttpClient();

              

            // 请求HttpClient,取得HttpResponse

            HttpResponse  httpResponse=httpclient.execute(httpRequest);

              

            //请求成功

            if(httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK)

            {

                //取得返回的字符串

                String strResult=EntityUtils.toString(httpResponse.getEntity());

                  

                JSONObject jsonObject = new JSONObject(strResult) ;

                //获取返回值,并判断是否正确

                actionResult=jsonObject.getBoolean("ActionResult");

            }

        }

        catch(Exception e)

        {

            return false;

              

        }

        return actionResult;

}




2.2 注册接口实现

接口定义:

http://192.168.1.1/gointel/UserHandler.ashx?Action=register&Account=xuwenbing&PassWord=xxuwenbin&NiceName=ninilan;

反馈json格式:

{ActionResult:false,Reason:""用户名已存在""}



?

代码片段,双击复制

01

02

03

04

05

06

07

08

09

10

11

12

13

14

   

  

public static Boolean Register(String account, String passWord,

            String niceName) {

          

        Boolean actionResult=false;   

        String httpUrl="http://221.181.127.43/gointel/UserHandler.ashx?Action=register&Account="+account+"&PassWord="+passWord+"&NiceName="+niceName;

        //httpGet 连接对象

        HttpGet httpRequest =new HttpGet(httpUrl);

           

        try

        {

            //取得HttpClinet对象

            HttpClient httpclient=new DefaultHttpClient();

              

            // 请求HttpClient,取得HttpResponse

            HttpResponse  httpResponse=httpclient.execute(httpRequest);

              

            //请求成功

            if(httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK)

            {

                //取得返回的字符串

                String strResult=EntityUtils.toString(httpResponse.getEntity());

                  

                JSONObject jsonObject = new JSONObject(strResult) ;

          

                //获取返回值,并判断是否正确

                actionResult=jsonObject.getBoolean("ActionResult");

            }

        }

        catch(Exception e)

        {

            return false;

              

        }

        return actionResult;

    }

 

标签:Android
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号