我正在嘗試向Imgur API發出HTTP請求。我試圖檢索與標籤「貓」相關的所有圖像。網址,根據Imgur API是:https://api.imgur.com/3/gallery/t/cats在Swift中製作帶HTTP頭的HTTP請求
的Imgur API狀態下即將作出獲得請求所需的授權:
對於公共只讀和匿名資源,如獲取圖像 信息,查找用戶評論等。您只需在您的請求中發送 授權標頭和
client_id
。如果您想匿名上傳圖片(沒有圖片
與帳戶關聯),或者您想創建匿名的
專輯,這也是 的作品。這讓我們知道哪個應用程序正在訪問API。Authorization: Client-ID YOUR_CLIENT_ID
我已經看過了下面的問題,並試圖提出的東西有,但他們都沒有幫助。
JSON NSURLRequest with credentials
Swift GET request with parameters
How to make a Http get and set httpHeader in Swift?
我當前的代碼是這樣的:
let string = "https://api.imgur.com/3/gallery/t/cats"
let url = NSURL(string: string)
let request = NSMutableURLRequest(URL: url!)
request.setValue("clientIDhere", forHTTPHeaderField: "Authorization")
//request.addValue("clientIDhere", forHTTPHeaderField: "Authorization")
request.HTTPMethod = "GET"
let session = NSURLSession.sharedSession()
let tache = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
if let antwort = response as? NSHTTPURLResponse {
let code = antwort.statusCode
print(code)
}
}
tache.resume()
但我不斷地得到403狀態碼,需要授權的意義。我究竟做錯了什麼?
有什麼地方不對勁,也許在你的問題的描述,因爲需要授權碼是401: 「{」data「:{」error「:」Authentication required「,」request「:」\/3 \/gallery \/t \/cats「,」method「:」GET「}, 「status」:401}'在進行上述從Chrome瀏覽器獲得的HTTP GET時。 403是'禁止',這意味着沒有任何授權可以讓你獲得該頁面,這只是一個鎖定區域。 – BaseZen
當把這個url複製/粘貼到瀏覽器中時,我得到了相同的響應,狀態碼爲401.但是,當它在Xcode中運行時,狀態碼是403.如果我刪除Xcode中的request.setValue方法,則狀態碼更改到401。 – joey