AFNetworking错误 - ' JSON写入中的无效类型(NSConcreteData)' - 上传音频文件时

时间:2014-10-15 14:43:24

标签: ios json afnetworking afnetworking-2 cloudinary

我正在尝试使用AFNetworking通过POST调用将音频文件上传到Cloudinary。我一直在使用AFNetworking轻松地将POST调用发送到我自己的服务器,但这是我第一次尝试通过AFNetworking发送NSData对象,这是我认为问题所在而且不完全是确定我需要调整调用以使其工作。

我的代码

我需要通过对Cloudinary服务的帖子调用发送4个参数,我将这些参数放入字典....

NSData *audioFile = [[NSData alloc]initWithContentsOfURL:_audioRecorder.url];
NSMutableDictionary *myParam = [NSMutableDictionary dictionary];
[myParam setValue:@(nowTime) forKey:@"timestamp"];
[myParam setValue:audioFile forKey:@"file"];
[myParam setValue:api_key forKey:@"api_key"];
[myParam setValue:finalSignature forKey:@"signature"];

[cloudManager setUpDataCall:@"/upload" withParameters:myParam];

setUpDataCall使用此代码转到AFHTTPSessionManager的子类。如果您好奇@"https://api.cloudinary.com/v1_1/karmo/raw"

,这是帖子网址的其余部分
 - (void)setUpDataCall:(NSString *)callURL withParameters:(NSDictionary *)parameters {

[self POST:callURL parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject)  {

    if ([self.delegate respondsToSelector:@selector(cloudManager:didReturnData:)]){

        //Success :)
    }

}failure:^(NSURLSessionDataTask *task, NSError *error) {

    if ([self.delegate respondsToSelector:@selector(cloudManager:didFailWithError:  )]) {

        //Error :(
    }
}];
}

错误

当我尝试发送文件Invalid type in JSON write (NSConcreteData)时出现此错误。

当我添加一个异常断点时,它标识了这个

        [mutableRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:self.writingOptions error:error]];

AFURLRequestSerialization.m类中的此方法。

- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request
                           withParameters:(id)parameters
                                    error:(NSError *__autoreleasing *)error

我已经看到了一些其他stackoverflow问题,如下面的问题,但我不确定这些是否仍然相关,因为这些帖子的代码似乎在代码中抛出错误,因为我猜测AFNetworking已更新自那些帖子。

AFNetworking Uploading a file

非常感谢任何代码帮助或示例。非常感谢花时间。

1 个答案:

答案 0 :(得分:0)

您是否尝试过以下帖子评论中解释的建议? Error with NSJSONSerialization - Invalid type in JSON write (Menu)