我正在尝试使用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
已更新自那些帖子。
非常感谢任何代码帮助或示例。非常感谢花时间。
答案 0 :(得分:0)
您是否尝试过以下帖子评论中解释的建议? Error with NSJSONSerialization - Invalid type in JSON write (Menu)