【发布时间】:2012-11-08 19:55:02
【问题描述】:
我有一个应用程序可以向用户显示一些消息。我需要通知服务器用户已阅读消息。为此,我需要向 /api/mark_as_read/ 发送一个 HTTP POST 请求,其中包含要标记为已读的消息 ID,例如:
ID: 1234
ID: 5678
ID: 90AB
请注意,HTTP 规范允许可能存在重复的密钥,API 在这种情况下使用这些密钥。
我目前正在使用 AFHTTPClient(AFNetworking 库的一部分)。 POST 参数作为 NSDictionary 传递给 AFHTTPClient,当然它具有唯一的键,这意味着我只能传入一个名为“ID”的值。
我已经寻找了一段时间的解决方案,但无法挖掘任何东西。但我相信很多人之前都遇到过这个问题。如何在 Objective-C 中向我的 HTTP 客户端传递具有非唯一键的字典?
更新 - 我能够通过更新 AFNetworking 库并将一组 ID 放入一个 NSDictionary 值来解决问题。 (见下文。)
【问题讨论】:
-
是否可以更改 API 以处理逗号分隔的字符串?因此您可以发送 ID 字符串,例如 1234,5678,90AB....等
-
传递给服务的数据必须是字典吗?您可以使用 JSON 发送您的键值对吗?
-
@Kassem 我无法更改 API,否则我会这样做。
-
@propstm 它必须被编码为
multipart/form-data,所以我认为 JSON 不会在这里工作。 -
你不能手动构建帖子正文吗?
标签: objective-c http http-post nsdictionary afnetworking