1

我試圖讓與應用程序只驗證API的NSURLRequest的setValue:forHTTPHeaderField:@「授權」沒有工作

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] 
                 cachePolicy:NSURLRequestReloadIgnoringLocalCacheData 
                timeoutInterval:20.0]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:@"application/x-www-form-urlencoded;charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:@"Some App Name" forHTTPHeaderField:@"User-Agent"]; 
[request setValue:authValue forHTTPHeaderField:@"Authorization"]; 
[request setHTTPBody:[@"grant_type=client_credentials" dataUsingEncoding:NSUTF8StringEncoding]]; 

有趣的是,authValue不獲取設置的身份驗證調用Twitter的API HTTPHeaderField @「授權」。因此,我的電話當然失敗了。所有其他標題字段設置正確。

我通過

NSLog(@"Authorization, %@, %@", [request valueForHTTPHeaderField:@"Authorization"], authValue); 

返回@「授權,(空),theCorrectStuff

檢查一下爲什麼會出現這種情況?我應該可以設置它了,還是我失去了一些東西?

感謝您的時間和考慮, 費邊

回答

1

我公頃d同樣的問題。輸出authValue,它可能包含新行。對於base64之後的應用程序唯一身份驗證,您需要從authValue中刪除新行,否則將不會設置標題字段。

或者只是使用已編寫的用於Twitter REST API 1.1的Objective-C庫(https://github.com/nst/STTwitter)。

相關問題