Node.js服务端初入门之POST解析

来源:互联网 发布:红外门禁单片机 编辑:程序博客网 时间:2024/06/08 10:07

情景,服务端Node.js 客户端iOS

一.客户端 iOS

//1.获得session    NSURLSession *session = [NSURLSession sharedSession];        //2.请求参数request    NSDictionary *parameters = @{@"user":@"chadpro",                                 @"id":@"12345"};    NSURL *url = [NSURL URLWithString:@"http://192.168.1.77:33333"];    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];    request.HTTPMethod = @"POST";    request.HTTPBody = [self dicToData:parameters];        //3.创建任务Task    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error)    {        NSString *dicString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];        NSData *JSONData = [dicString dataUsingEncoding:NSUTF8StringEncoding];        NSError *err = nil;        NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingMutableLeaves error:&err];                NSLog(@"%@",dic);    }];        //4.开始任务    [dataTask resume];

我们利用NSURLSession向服务器发起POST请求,请求参数是字典parameters。

二.服务端 Node.js

1.方法一,用字符串接收请求体

var http = require('http');//服务端http.createServer(function(req,res){      var body = '';      req.on('data',function(chunk){          body+=chunk;      });      req.on('end',function(){         var jsObj = JSON.parse(body);        var user = jsObj.user;        var id = jsObj.id;      });}).listen(33333);
这里的 jsObj 就是对应的iOS传递的请求参数 parameters。

2.方法二,用buf接收请求体

var http = require('http');//服务端http.createServer(function(req,res){      var body = [];      req.on('data',function(chunk){          body.push(chunk);      });      req.on('end',function(){           body = Buffer.concat(body);          var str = body.toString();          var jsObj = JSON.parse(str);          var user = jsObj.user;        var id = jsObj.id;      });       }).listen(33333);
至于buf还是字符串,这两个方法在性能上,以及坑上的问题,详细可见文章  浅谈nodejs的buffer类




2 0
原创粉丝点击