dropbox / dropbox-sdk-obj-c

Official Objective-C SDK for the Dropbox API v2.
MIT License
183 stars 117 forks source link

ODBoxHandler - NSErrorFailingURLKey=https://api.dropbox.com/2/files/list_folder #357

Closed babulk closed 2 years ago

babulk commented 2 years ago

Getting empty files.

[ODBoxHandler] Error fetching files: DropboxClientError[{ NSError = "Error Domain=NSURLErrorDomain Code=-1000 \"(null)\" UserInfo={_NSURLErrorRelatedURLSessionTaskErrorKey=(\n \"LocalDataTask <2ED1C890-FEEC-491C-B69F-DDF74778EEE2>.<2>\"\n), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <2ED1C890-FEEC-491C-B69F-DDF74778EEE2>.<2>, NSErrorFailingURLKey=https://api.dropbox.com/2/files/list_folder}"; }];

greg-db commented 2 years ago

I see a reference to "ODBoxHandler" which is not part of this official Dropbox Objective-C SDK. It appears to be part of this third party library. As that's not made by Dropbox, we can't offer support for that.

If you need help with the Dropbox API or official Dropbox Objective-C SDK itself, please share the relevant code and steps to reproduce the issue. Thanks!

babulk commented 2 years ago

**ODBoxHandler is a third party. I understood. The following code is where I am getting error.

I have tried without using the third party also, still got error.**

@property (nonatomic, strong, nullable) DBUserClient *mainClient;

[[self.mainClient.filesRoutes listFolder:parentDirectory] setResponseBlock:^(DBFILESListFolderResult _Nullable result, DBFILESListFolderError _Nullable routeError, DBRequestError * _Nullable networkError) { if (result) { newFileList = [NSMutableArray arrayWithCapacity:result.entries.count];

        [self parseTheFileEntriesFrom:result.entries intoArray:newFileList];

        if ([result.hasMore boolValue]) {
            NSLog(@"Folder is large enough where we need to call `listFolderContinue:`");
            [self listFolderContinueWithCursor:result.cursor intoFileArray:newFileList completion:finishBlock];
        } else {
            NSLog(@"List folder complete.");
            finishBlock(newFileList.copy, nil);
        }
    } else {
        finishBlock(nil, networkError.nsError);
    }
}];

**Directly used the official "Dropbox Objective-C SDK" as well. Still throwing error.**

DBUserClient *client = [DBClientsManager authorizedClient];

NSString *searchPath = @"";

[[client.filesRoutes listFolder:searchPath]
    setResponseBlock:^(DBFILESListFolderResult *result, DBFILESListFolderError *routeError, DBRequestError *error) {
      if (result) {
          NSLog(@"result ----%@", result);
       // [self displayPhotos:result.entries];
      } else {
              //Error here
  }
babulk commented 2 years ago

is there any location specific condition is there?

I am trying to login in India. I am getting error. If the same credentials used by onsite developers(USA) then they are not seeing any error to fetch the files.

greg-db commented 2 years ago

Your location itself shouldn't matter to the operation of the Dropbox API, but your connection to the Dropbox servers does depend on the routing you get between your ISP and our servers, and may be subject to a number of other factors.

For instance, might your ISP be blocking these connections, or is there anything on your network connection, such as a firewall, proxy, VPN, anti-virus, etc., that might be interfering with these connections?

Also, do other Dropbox API calls fail or succeed? Which ones specifically?

babulk commented 2 years ago

Thank you. Issue resolved. As part of our app, If we disable transport then it worked. I able to see the files now.