zoukankan      html  css  js  c++  java
  • 【企业通讯录app番外篇】怎么样创建服务端?

    本文将指导大家如何去创建企业通讯录app的服务端

    除了获取图片,客户端与服务端唯一的交互就是获取最新数据,如果该用户不能获取数据(用户名密码错误、用户离职被删)则返回空。

    1:典型的交互流程如下:

                          用户名与密码

    app    -----------------------------> 服务端

    app   <-----------------------------  服务端

                        json格式的通讯录

    2:接下来讲讲json通讯录需要哪些属性。

    一共需要7个,见下文。

     {"UserName":"姓名","Company":"公司","Department":"部门","JobTitle":"职位","Phone":"手机号1","ShortPhone":"手机号2","AvatarURL":"头像地址"}

    3:接下来给出服务端的具体实现参考

    asp.net版:

    为啥要拼接而不是使用框架序列化,是为了更高的性能,参考

    private void getList(HttpContext context)
            {
    string userName = context.Request.QueryString["u"];
                string password = context.Request.QueryString["p"];
    
                if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password))
                {
                    context.Response.Write("");
                    return;
                }
    
                if (检查用户名密码是否可用(userName, password) == null)
                {
                    context.Response.Write("");
                    return;
                }
    
                string sqlStr = @"你的sql语句";
                StringBuilder sb = new StringBuilder();
    
                using (SqlDataReader reader = (SqlDataReader)SqlHelper.ExecuteReader(sqlStr))
                {
    
                    while (reader.Read())
                    {
                        sb.Append(",{");
                        sb.AppendFormat(""UserName":"{0}","Company":"{1}","Department":"{2}","JobTitle":"{3}","Phone":"{4}","ShortPhone":"{5}","AvatarURL":"{6}"", reader["UserName"], reader["Company"], reader["Department"], reader["JobTitle"], reader["Phone"], reader["ShortPhone"], reader["AvatarURL"]);
                        sb.Append("}");
                    }
                }
    
                if (sb.Length > 0)
                {
                    sb[0] = '[';
                    sb.Append("]");
                    context.Response.Write(sb);
                }
                else
                    context.Response.Write("");
    }

    如果你没有数据库,一个json文件也是可以滴。

    简单nodejs版demo实现(需要安装restify)

    var restify = require('restify');
    var rf=require("fs"); 
    var contactList=rf.readFileSync("json文件地址","utf-8");
    
    function respond(req, res, next) {
      res.setHeader('content-type', 'text/plain');
      if (req.params.name == "账户名" && req.params.pwd=="密码") {
           res.send(contactList);
      }
      else
          {
              res.send('');
          };
     
    }
    
    var server = restify.createServer();
    server.get('/u/:name/:pwd', respond); 
    
    server.listen(3900, function() {
      console.log('%s listening at %s', server.name, server.url);
    });

     调用方式(自己改ip地址): http://192.168.1.1:3900/u/用户名/密码

    4:如何做一个服务端,总结如下:

    1:对客户端传递的账户密码进行验证,错误返回空,否则进行下步骤

    2:sql获取数据库的用户信息

    3:拼接成json格式返回

  • 相关阅读:
    GOF之单例模式
    C#面向对象设计模式纵横谈课堂笔记
    Oracle事务
    Oracle游标
    pl/sql(一)
    pl/sql(二)
    pl/sql(三)
    Oracle用户管理
    Oracle视图
    Oracle函数
  • 原文地址:https://www.cnblogs.com/kimmy/p/4654683.html
Copyright © 2011-2022 走看看