关于AFNetWorking Delet方法的坑

2017-12-12  本文已影响3人  重案组之虎曹达华_

今天在学习Python后台开发当中发现  ios的afn框架的delet方法  python的django框架无法打印接受到的ios客户端传来的参数   后发现参数的传递过程中afn直接将参数拼在url的后面 导致python后台无法接受到参数,经过一番源码阅读 afn中有这么一句话:


if ([self.HTTPMethodsEncodingParametersInURI containsObject:[[request HTTPMethod] uppercaseString]]) {

if (query && query.length > 0) {

mutableRequest.URL = [NSURL URLWithString:[[mutableRequest.URL absoluteString] stringByAppendingFormat:mutableRequest.URL.query ? @"&%@" : @"?%@", query]];

}

} else {

// #2864: an empty string is a valid x-www-form-urlencoded payload

if (!query) {

query = @"";

}

if (![mutableRequest valueForHTTPHeaderField:@"Content-Type"]) {

[mutableRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

}

[mutableRequest setHTTPBody:[query dataUsingEncoding:self.stringEncoding]];

}


是因为afn的HTTPMethodsEncodingParametersInURI的集合当中包含了delet的方法,导致参数拼接的问题,最后只需要在afn的HTTPMethodsEncodingParametersInURI的集合当中去掉Delet的元素就行

如:manager.requestSerializer.HTTPMethodsEncodingParametersInURI = [NSSet setWithObjects:@"GET", @"HEAD", nil];

上一篇 下一篇

猜你喜欢

热点阅读