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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值