我正在开发一个应用程序,我集成了Dropbox。登录正确完成我也可以在dropBox中创建文件夹。但是,当我尝试加载文件时,我收到错误
以下错误我正在
error making request to /1/files_put/dropbox/Info.plist - Error
Domain=NSURLErrorDomain Code=-1021 "The operation couldn’t be
completed. (NSURLErrorDomain error -1021.)" UserInfo=0x6859bc0
{destinationPath=/Info.plist,
sourcePath=/Users/bcod/Library/Application Support/iPhone
Simulator/5.0/Applications/0E1EE43C-8F6B-40FA-8696-D3992DA2DCE5/DBRoulette.app/Info.plist}
我在创建文件夹时没有收到此错误。
答案 0 :(得分:7)
我在iPhone上遇到了与iOS 5.0相同的问题,但iPhone 6.1模拟器无法创建错误消息。
我查看了DropboxSDK / DBRestClient.m,特别是uploadFile的最后几行:toPath:fromPath:params并在DBRequest上实现了一个类别'ExBody'来添加连接:needNewBodyStream方法:
#import "DBRequest+ExBody.h"
@implementation DBRequest (ExBody)
#pragma mark NSURLConnection delegate methods
- (NSInputStream *)connection:(NSURLConnection *)connection needNewBodyStream:(NSURLRequest *)req {
NSString * sourcePath = [userInfo objectForKey:@"sourcePath"];
NSLog(@"%@ needs newBodyStream!", sourcePath);
return [NSInputStream inputStreamWithFileAtPath:sourcePath];
}
@end
这对我有用。该方法在iOS5上调用,而不是在iOS6上调用!
答案 1 :(得分:4)
错误-1021是NSURLErrorRequestBodyStreamExhausted
错误。
根据documentation您缺少委托方法:
<强> NSURLErrorRequestBodyStreamExhausted 强>
身体流时返回 需要但客户不提供。这会影响客户 使用正文流发送POST请求但未实现的iOS NSURLConnection委托方法连接:needNewBodyStream。 适用于OS X v10.7及更高版本。