• Android客户端 +.Net MVC3服务端核心代码


    一直是做.Net MVC开发的,结果有项目要求做android客户端,悲剧…… java基本等于0,只能折腾,近2个月终于完成

    Android客户端 + Asp.net MVC3服务端主要问题就是通信.测试了N多,最后找到了个比较好用的jar包用做客户端数据提交:

    android-async-http 官网和下载地址:http://loopj.com/android-async-http/

    群里朋友给了很精准的描述:

    Http请求均位于非UI线程,不会阻塞UI操作
    处理异步Http请求,并通过匿名内部类处理回调结果
    通过线程池处理并发请求
    处理文件上传、下载
    响应结果自动打包JSON格式
    自动处理连接断开时请求重连

    闲话不说,上代码:

     1 // 访问的url
     2 String Url = "http://192.168.1.121/WebApp/Post";
     3 
     4 AsyncHttpClient client = new AsyncHttpClient();
     5 
     6 // 上传图片或者文件
     7 File file = new File(Environment.getExternalStorageDirectory()+ "/temp.jpg");
     8 // 参数
     9 RequestParams params = new RequestParams();
    10 params.put("userName", "admin");
    11 params.put("pwd", "123");
    12 try {
    13     params.put("file", file);
    14 } catch (FileNotFoundException e1) {
    15     e1.printStackTrace();
    16 }
    17 
    18 client.post(Main.this, Url, params, new JsonHttpResponseHandler() {
    19 
    20     @Override
    21     public void onStart() {
    22         //此处添加程序开始时候的动作,如创建一个圆形进度条
    23     }
    24 
    25     @Override
    26     public void onFinish() {
    27         //此处添加程序完成后的代码,如进度条结束
    28     }
    29 
    30     @Override
    31     public void onSuccess(JSONObject jsonObject) {
    32         super.onSuccess(jsonObject);
    33         try {
    34             String status = jsonObject.getString("m");
    35             Log.e("msg", status);
    36         } catch (JSONException e) {
    37             // TODO Auto-generated catch block
    38             e.printStackTrace();
    39         }
    40 
    41     }
    42 
    43     @Override
    44     public void onFailure(Throwable e, String response) {
    45         Log.e("msg", e + "");
    46         mypDialog.dismiss();
    47     }
    48 
    49 });
    客户端

    服务端部分,我用的是Asp.Net MVC3

     1 public JsonResult AttendancePost(string phoneId, string companyCode, string userId, string userName, string pwd, string AttendType, string lonLat)
     2 {
     3     try
     4     {               
     5 
     6         #region 照片上传
     7 
     8         var file = Request.Files["file"];
     9         if (file != null)
    10         {
    11             string relativePath = "/Upload/";
    12             string fileType = "jpg";
    13             string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "." + fileType;
    14             string absolutePath = AppDomain.CurrentDomain.BaseDirectory + relativePath;
    15             string fileFullPath = Path.Combine(absolutePath, fileName);
    16  
    17             //自己编写上传的方法
    18             UploadHelper.UploadFile(fileFullPath, file);
    19         }
    20 
    21         #endregion
    22 
    23         return Json(new { m = "上传成功", s = "S" }, "text/plain", JsonRequestBehavior.AllowGet);
    24 
    25     }
    26     catch (Exception ex)
    27     {                
    28         return Json(new { m = "上传失败", s = "S" }, "text/plain", JsonRequestBehavior.AllowGet);
    29     }
    30 
    31 
    32 }
    服务端

    基本上Android和MVC之间的通讯方式就是类似这样,客户端部分采用Get或者Post方式可以去官网查看,有比较完整的demo

  • 相关阅读:
    [NOI2003],[AHOI2006]文本编辑器
    luogu P5151 HKE与他的小朋友
    [NOI2005]维护数列
    [HNOI2012]永无乡
    luogu P4146 序列终结者
    [SCOI2016]美味
    UVA1451 Average
    [JSOI2007]字符加密
    luogu P3809 【模板】后缀排序
    CentOS 7系统启动后怎么从命令行模式切换到图形界面模式
  • 原文地址:https://www.cnblogs.com/lyeo/p/3083350.html
Copyright © 2020-2023  润新知