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

标签 ios json afnetworking afnetworking-2 cloudinary

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

我的代码

我需要通过post调用将4个参数发送到我放入字典中的Cloudinary服务...。

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"感到好奇,这就是帖子URL的其余部分。
 - (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

任何代码帮助或示例将不胜感激。多谢您抽出宝贵的时间。

最佳答案

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

关于ios - AFNetworking错误-'无效的JSON写入类型(NSConcreteData)'-上传音频文件时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26385400/

相关文章:

ios - xcode 中弃用的警告以及如何处理弃用

ios - URLComponents.url 为零

javascript - 一种如何在Angular中设置大型动态文本字符串的样式?

c# - Json 从实体返回额外的值

ios - 如何防止触摸通过 UIImageView?

ios - 在 Swift 3 中出列可重用单元非常慢

ios - 带有 AFNetworking 的嵌套 NSDictionary 和 NSArray 无法正常工作

objective-c - AFNetworking 会自动在后台线程上执行操作吗?

javascript - 有没有办法将 jquery 映射文本从字符串转换为 json?

ios - 我如何知道在 AFNetworking 中是否执行了成功或失败 block