【企业通讯录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格式返回

 

posted @ 2015-07-17 15:29  谪仙  阅读(1597)  评论(0编辑  收藏  举报