今天一朋友问我用AFN封装的工具类使用PUT方式请求后台一直收不到参数,不传参的PUT请求都成功了,唯独这个传参的PUT返回的code是400,这说明问题还是出在客户端这边,看了看AFN内部的实现,发现对PUT请求的支持并没有GET和POST那么好。
并且在网上找了找发现千篇一律的都是AFN不行就用ASI,这都17年了还ASI,也是够够的了。
试了各种办法后发现关键时候还是原生的请求靠谱,所以在此也发表一篇感慨一下,以后各位要是有用到PUT请求的,AFN不行的话就建议用苹果原生的请求。在此贴出代码。
NSURL *url = [NSURL URLWithString:@"你要请求的URL"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"PUT";
request.allHTTPHeaderFields = @{@"":@""}//此处为请求头,类型为字典
NSString *msg = @"请求参数";
NSData *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPBody = data;
[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
}] resume];
以上就是当时测试用的代码,有用到的可以直接粘贴改改就可以。