我对所有服务器请求都使用MKNetworkKit非常好。但是,当尝试上传图像文件时,它会因以下错误而失败:
错误域=NSURLErrorDomain 代码=-1005 “网络连接丢失。” UserInfo=0x1010cb20 {NSErrorFailingURLStringKey=https://s3.amazonaws.com/net.myapp.upload, NSErrorFailingURLKey=https://s3.amazonaws.com/net.myapp.upload, NSLocalizedDescription=网络连接丢失。, NSUnderlyingError =0x1010ca60 "网络连接丢失。"}
有时错误代码是 405。我拥有上传所需的所有亚马逊凭据,并在终端中使用与应用程序相同的传出数据运行 cURL 会产生正确的返回。我用于此请求的方法在这里:
- (MKNetworkOperation*)uploadMediaFromFile:(NSString*)file urlCommand:(NSString*)url
postField:(NSString*)field authDict:(NSMutableDictionary*)authDict onCompletion:(
MediaUploadBlock)completionBlock onError:(MKNKErrorBlock)errorBlock {
MKNetworkOperation *op = [self operationWithURLString:url params:authDict
httpMethod:@"POST"];
[op addFile:file forKey:field];
// setFreezable uploads your images after connection is restored!
[op setFreezable:YES];
[op onCompletion:^(MKNetworkOperation* completedOperation) {
NSLog(@"%@",[completedOperation responseString]);
NSDictionary *jsonString = [completedOperation responseJSON];
NSLog(@"%@",jsonString);
completionBlock(jsonString);
}
onError:^(NSError* error) {
errorBlock(error);
}];
[self enqueueOperation:op forceReload:YES];
return op;
}
这是一个相当基本的请求,可以从终端运行,也可以使用此处提供的相同参数从浏览器运行。我不知道为什么这不起作用。任何帮助表示赞赏。