今天在弄公司一个项目时候,发现AF默认将此参数设置成这样:
// HTTP Method Definitions; see http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
self.HTTPMethodsEncodingParametersInURI = [NSSet setWithObjects:@"GET", @"HEAD", @"DELETE", nil];
这样会影响具体的请求实现。具体是影响post请求方式。
通过xcode定位代码,发现在requestBySerializingRequest中会直接跳过
if ([self.HTTPMethodsEncodingParametersInURI containsObject:[[request HTTPMethod] uppercaseString]]) {
return [super requestBySerializingRequest:request withParameters:parameters error:error];
}
如果是get请求,直接就return分支了。
如果是post请求,程序会往下走。
因为这是项目比较老,用的AF版本还是旧的。AF新版本处理方式已经修改了。