如何使用MKNetworkKit将NSArray传递给POST

时间:2012-06-20 17:28:56

标签: ios json mknetworkkit

MKNetworkOperation * op = [self operationWithPath:@“thestore / services / storeservice.svc / getfavorites”                                                 PARAMS:fetchedObjects                                                 列举HTTPMethod:@ “POST”];

fetechedObjects是一个数组。我可以遍历数组以获取我需要放入POST请求主体的值

[
 {
     "id": 9222,
    "latitude": 19.7897,
    "longitude": -64.0208
 },
 {
     "id": 7832,
     "latitude": 79.7713,
     "longitude": -44.1084
 }
]

但我无法弄清楚如何使用MKNetworkOperation

3 个答案:

答案 0 :(得分:4)

首先要尝试将操作的postDataEncoding属性设置为MKNKPostDataEncodingTypeJSON。这个应该使数组被序列化并设置为请求体。

但是MKNetworkKit并不真正支持params参数的数组值;它期待一本字典。如果你遇到错误的代码路径,它可能会崩溃,因为它需要一个你提供数组的字典。

答案 1 :(得分:2)

这应该可以帮到你。

  [op setCustomPostDataEncodingHandler:^NSString *(NSArray *listOfItems) {

    return [listOfItems description];

  } forType:@"text/json"];

答案 2 :(得分:1)

我通过发送数组(产品)作为列表来解决它:

  

NSData * data = [NSJSONSerialization dataWithJSONObject:products                                                              选项:0 //非漂亮打印                                                                误差:无];               ;               [params setObject:[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] forKey:@" list"];