1

postmates apiを使用しようとしていますが、認証の問題が発生しています。自分のサイト引用するAFNetworking HTTP基本認証で「あなたのAPIキーが正しくフォーマットされていません」というエラーが表示されます

認証

PostmatesのAPIは、HTTP基本認証ヘッダによる認証が必要です。 APIキーをユーザー名として含める必要があります。パスワードは にしてください。

使用される実際のヘッダが このようなbase64でエンコードされた文字列になります。

Basic Y2YyZjJkNmQtYTMxNC00NGE4LWI2MDAtNTA1M2MwYWYzMTY1Og==

私は「そう

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 

NSURLCredential *credential = [NSURLCredential credentialWithUser:@"(my postmates key)" password:@"" persistence:NSURLCredentialPersistenceNone]; 

NSMutableURLRequest *request = [manager.requestSerializer requestWithMethod:@"GET" URLString:@"https://api.postmates.com/v1/delivery_zones" parameters:nil]; 

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
[operation setCredential:credential]; 
[operation setResponseSerializer:[AFJSONResponseSerializer alloc]]; 
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"Success: %@", responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Failure: %@", error); 
}]; 

[manager.operationQueue addOperation:operation];  

エラーメッセージのようAFNetworkingを使用してみました得ることは

Incorrect NSStringEncoding value 0x0000 detected. Assuming NSASCIIStringEncoding. Will stop this compatiblity mapping behavior in the near future. 

Success: { 
     code = "invalid_authorization_header"; 
     kind = error; 
     message = "Your API key was not formatted properly"; 
    } 

答えて

3

資格情報を作成する代わりに、次のように試してみるとよいでしょう。

[request setValue:@"Basic Y2YyZjJkNmQtYTMxNC00NGE4LWI2MDAtNTA1M2MwYWYzMTY1Og==" forHTTPHeaderField:@"Authorization"]; 
+0

良いキャッチ..... +1 – Lion

関連する問題