在我们使用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('开启监听')
网友评论