美文网首页
Json参数的解析

Json参数的解析

作者: 越天高 | 来源:发表于2020-08-06 09:45 被阅读0次

在我们使用AFN作为网络工具的时候要注意一下几点

AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];

// 请求(根据参数的类型判断,使用哪个类)
// AFHTTPRequestSerializer:普通参数
// AFJSONRequestSerializer:Json参数(数组,字典) 如果参数有好几层,的话

// AFJSONResponseSerializer:把服务器数据转换为对象
// AFHTTPResponseSerializer:默认不会去处理服务器返回的数据,返回NSData

正常请求

  AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
 mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
    parameters[@"account"] = @"su";
    parameters[@"pwd"] = @"123";
    
    [mgr POST:@"http://192.168.1.6:8080/home" parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        
        NSLog(@"%@", str);
        //        NSString *result = responseObject;
        //         [responseObject UTF8String];
        //        NSLog(@"%@",responseObject);
        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"%@",error);
    }];

json参数请求


// 获取param
    NSDictionary *param = @{
@"numbber" : @{@"name":@"su", @"height":@"189" }
@"friend":[@"zhang",@"qian"]
};
    
    // 发送请求
    AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
    // 请求
    AFJSONRequestSerializer *resquest = [AFJSONRequestSerializer serializer];
    mgr.requestSerializer = resquest;
    
    // 响应
    AFHTTPResponseSerializer *response = [AFJSONResponseSerializer serializer];
    response.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];
    mgr.responseSerializer = response;
    
    [mgr POST:url parameters:param progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        NSLog(@"%@",responseObject);
        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        
        NSLog(@"%@",error);
    }];


  • 服务器端的代码
var express = require('express')
//引入bodyParser
var bodyParser = require('body-parser')
// 直接把Post请求体的东西解析出来,存入request.body

// 解析www格式post参数解析器
var urlEncodedParser = bodyParser.urlencoded({extended:true})
// 解析json格式post参数的解析器
var jsonParser = bodyParser.json();
//创建web服务器
var server = express();
//使用中间键进行解析普通请求参数
// server.use('/live',urlEncodedParser)
//使用中间件进行解析JSON请求的参数
server.use('/live',jsonParser);
// 监听post
// 发送登录请求(账号,密码)
server.post('/live',function(req,res)
{
 console.log('监听到live访问')
 res.send(req.body)
})

server.post('/home',function(req,res)
{
 console.log('监听到home访问')
 res.send(req.body)
})

server.listen(3005)

console.log('开启监听')var express = require('express')
//引入bodyParser
var bodyParser = require('body-parser')
// 直接把Post请求体的东西解析出来,存入request.body

// 解析www格式post参数解析器
var urlEncodedParser = bodyParser.urlencoded({extended:true})
// 解析json格式post参数的解析器
var jsonParser = bodyParser.json();
//创建web服务器
var server = express();
//使用中间键进行解析普通请求参数
// server.use('/live',urlEncodedParser)
//使用中间件进行解析JSON请求的参数
server.use('/live',jsonParser);
// 监听post
// 发送登录请求(账号,密码)
server.post('/live',function(req,res)
{
 console.log('监听到live访问')
 res.send(req.body)
})

server.post('/home',function(req,res)
{
 console.log('监听到home访问')
 res.send(req.body)
})

server.listen(3005)

console.log('开启监听')

相关文章

网友评论

      本文标题:Json参数的解析

      本文链接:https://www.haomeiwen.com/subject/ergorktx.html