【问题标题】:NSURLErrorDomain error -1021NSURLErrorDomain 错误 -1021
【发布时间】:2013-04-20 06:06:58
【问题描述】:

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

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

【问题讨论】:

    标签: ios iphone dropbox nsurl nsurlerrordomain


    【解决方案1】:

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

    【讨论】:

    • 绝对是救命稻草。像魅力一样工作。
    • 也为我工作,谢谢!我已将问题报告给 Dropbox。他们计划在下一个版本中包含修复。
    • 嗨@TomThumb - 我在我的项目中复制了这两个文件。我应该在某处#import .h 文件吗?
    • 无需导入(或实际创建).h 文件。只需链接 .m 文件即可。
    • 1.3.5 SDK 包含此修复。
    【解决方案2】:

    错误 -1021 是 NSURLErrorRequestBodyStreamExhausted 错误。

    根据documentation,您缺少一个委托方法:

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

    【讨论】:

    • 我尝试调用委托 DBNetworkRequestDelegate、NSURLConnectionDataDelegate、NSURLConnectionDelegate 但仍然遇到同样的错误
    • 你添加connection:needNewBodyStream方法了吗?
    • 我应该如何实现该方法
    • 阅读docs
    • 此错误来自 Dropbox SDK,因此@user2185354 可能无法实现。也就是说,Dropbox SDK 库可能需要实现这一点,但他无权访问NSURLConnection
    猜你喜欢
    • 1970-01-01
    • 2022-10-14
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 2016-02-06
    • 2014-12-11
    • 1970-01-01
    相关资源
    最近更新 更多