iOS 中的PUT请求

今天一朋友问我用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];

以上就是当时测试用的代码,有用到的可以直接粘贴改改就可以。

你可能感兴趣的:(iOS 中的PUT请求)