AFNetworking 2.0 参数字典不适用于 GET 请求

Posted

技术标签:

【中文标题】AFNetworking 2.0 参数字典不适用于 GET 请求【英文标题】:AFNetworking 2.0 parameter dictionary not working on GET request 【发布时间】:2013-10-21 18:19:35 【问题描述】:

我将 AFNetworking 2.0 用于正常的 GET 请求,但参数字典似乎没有效果。我正在使用标准:

 [manager GET:URLString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) ...

但我的 NSMutableDictionary(参数)似乎对 GET 请求中发送的 URL 没有任何影响(据我所知,GET 请求没有 HTTP 主体,因此它们不会存在)。那么参数去哪儿了?我知道我总是可以修改字符串,但是我在可选的基础上接收参数的方式使得只发送字典要容易得多。怎么了,为什么不行?

谢谢, 迈克

更新: 我正在设置这样的参数:[parameters setValue:self.Object.ID forKey:@"Filter.Id"]; ID 是一个字符串。但是,当我执行[parameters valueForKey:@"Filter.Id"] 时,我在 NSLog 中得到一个 (null)。我将对其进行一些处理,看看它是如何进行的,但是如果您对为什么会发生这种情况有任何想法,我将不胜感激。此外,parameters 是一个 NSMutableDictionary,是 ViewController 的一个属性。

【问题讨论】:

通常但不是必需的,参数将进入 URL 的查询组件。像往常一样,您能否提供更多信息,例如在发送请求之前打印请求(和 url),是否有任何错误,请求正文(如果有)?您现在应该有足够的经验来轻松完成此任务;) 如果你使用 AFNetworking 2.0,你的签名不应该是 - (NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(NSDictionary *)parameters success:(void (^)(NSURLSessionDataTask * task, id responseObject))成功失败:(void (^)(NSURLSessionDataTask *task, NSError *error))失败; @CouchDeveloper 你好。顺便说一句,我们在 AFN 2.0 中遇到的编码问题突然消失了,我删除了自定义编码,突然它就起作用了!但是,是的,我在请求中打印了 URL,它只是省略了参数,没有添加任何内容。 @Mackey18 自定义编码和内置编码几乎相同。如果参数值没有空格和一些其他 ASCII 字符,如“[”、“]”、“~”(更多),则生成的参数字符串是相同的。但是,如果您的参数值有空格,则内置编码将无法正确编码。 @CouchDeveloper 好的,我不认为有任何空格,但我会在回来时仔细检查。那我回来汇报。 【参考方案1】:

我的 NSMutableDictionary 属性有问题。将其更改为全局变量,一切正常!

谢谢,迈克

【讨论】:

以上是关于AFNetworking 2.0 参数字典不适用于 GET 请求的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 2.0 setImageWithURLRequest

Afnetworking 2.0 发布方法错误

使用 afnetworking 2.0 发送字典数组

如何使用 AFNetworking 2.0 将包含字典的数组发送到服务器?

AFNetworking 2.0.3 不适用于 iOS 6

Afnetworking 2.0 参数编码