我将下面的NSMutableDictionary
作为AFNetworking
的参数从iPhone应用程序(ios6.1)传递到Django服务器
NSMutableDictionary *parameters = [[NSMutableDictionary alloc] init];
[parameters setObject:[self getProductDictionary] forKey:@"prodDic"];
[parameters setObject:ApplicationDelegate.userUniqueId forKey:@"userID"];
[manager POST:BaseURLString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {...}
-(void) getProductDictionary
{
NSMutableDictionary *products = [[NSMutableDictionary alloc] init];
[products setObject:@"aaa" forKey:@"prod1"];
[products setObject:@"vvv" forKey:@"prod2"];
[products setObject:@"bbb" forKey:@"prod3"];
}
在服务器中,我有以下视图:
^{pr2}$下面一行显示错误products=json.loads(request.POST['prodDic'])
,错误是:raise MultiValueDictKeyError(repr(key)) MultiValueDictKeyError: "'prodDic'"
对于调试,我删除了行并添加了以下代码:
#for debug
for key in request.POST:
value = request.POST[key]
print value
键如下:prodDic[prod1]
如何将字典接收到产品中,以便可以像这样浏览它:
for key in products:
value = products[key]
请求对象GET和POST可以包含多个相同键的值。特别是一些HTML表单元素,会为同一个键传递多个值。在
你路过请求.POST对象转换为JSON序列化程序,该序列化程序不允许具有相同名称的多个密钥。所以请检查一下请求.POST数据,查看是否获得多个同名密钥。如果是,则必须在传递给JSON load函数之前处理此数据。在
我希望它能给你一些解决问题的建议
这就是我最后发现的。。。问题从objective c开始,将字典按原样传递给AFNetworking,导致服务器端的密钥看起来很滑稽
以下是我更新的工作代码:
然后在服务器端:
^{pr2}$希望这能为某人节省时间和痛苦:)
相关问题 更多 >
编程相关推荐