2012-12-03 263 views
2

我试图访问https://api.box.com/2.0/files,但我收到我的回应(来自AFNetworking)Expected status code in (200-299), got 405405方法不允许

在发送请求之前,我从服务器获取了auth_token。

代码

- (void)getFileListing:(NSString*)apiKey 
{ 
    if(apiKey == nil) { apiKey = kBoxNetApiKey; } 

    NSDictionary *boxAuth = [[NSUserDefaults standardUserDefaults] objectForKey:kBoxNetUserDefaultsKey]; 

    if([boxAuth objectForKey:@"auth_token"] != nil) { 
     NSURL *url = [NSURL URLWithString:@"https://api.box.com/2.0/files"]; 
     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
     [request setHTTPMethod:@"GET"]; 

     DLog(@"auth_token: %@", [boxAuth objectForKey:@"auth_token"]); 
     DLog(@"apiKey: %@", apiKey); 

     NSString *auth = [NSString stringWithFormat:@"BoxAuth api_key=%@&auth_token=%@", apiKey, [boxAuth objectForKey:@"auth_token"]]; 
     [request setValue:auth forHTTPHeaderField:@"Authorization"]; 

     AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 

      DLog(@"JSON: %@", JSON); 

     } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { 

      DLog(@"error: %@", error); 
      DLog(@"JSON: %@", JSON); 

     }]; 

     [operation start]; 
    } 
} 

* 错误

__29-[BoxNetAuth getFileListing:]_block_invoke_081 [Line 75] error: Error Domain=AFNetworkingErrorDomain Code=-1011 "Expected status code in (200-299), got 405" UserInfo=0xa0b8740 {NSLocalizedRecoverySuggestion={"type":"error","status":405,"code":"method_not_allowed","help_url":"http:\/\/developers.box.com\/docs\/#errors","message":"Method Not Allowed","request_id":"183259878350bcd62a62f1b"}, AFNetworkingOperationFailingURLRequestErrorKey=<NSMutableURLRequest https://api.box.com/2.0/files>, NSErrorFailingURLKey=https://api.box.com/2.0/files, NSLocalizedDescription=Expected status code in (200-299), got 405, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0xa6c9840>}

+0

通常,这是由'GET'ting资源引起的,需要进行POST操作,反之亦然。尝试将HTTP方法更改为“POST”。 – Kevin

+0

其实这对我没有用:(我已经试过了,现在仍然是405不允许 – h4cky

+0

如果GET和POST都不起作用,我会冒着对PUT的猜测,因为它似乎是一个上传网站。 –

回答