1

如果我集成了 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}

我在创建文件夹时没有收到此错误。

4

2 回答 2

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 上调用的!

于 2013-04-25T10:05:05.447 回答
4

错误 -1021 是一个NSURLErrorRequestBodyStreamExhausted错误。

根据文档,您缺少委托方法:

NSURLErrorRequestBodyStreamExhausted
当需要正文流但客户端没有提供时返回。这会影响 iOS 上使用正文流发送 POST 请求但未实现 NSURLConnection 委托方法 connection:needNewBodyStream 的客户端。在 OS X v10.7 及更高版本中可用。

于 2013-04-20T06:12:00.757 回答