Создание HTTP-запроса с заголовком В Swift

Я пытаюсь сделать HTTP-запрос к API Imgur. Я пытаюсь получить все изображения, связанные с тегом "кошки."Url, согласно API Imgur, является:https://api.imgur.com/3/gallery/t/cats

API Imgur заявляет следующее об авторизации, необходимой для выполнения запросов get:

для общедоступных только для чтения и анонимных ресурсов, таких как получение изображения информация, просмотр комментариев пользователей и т. д. все, что вам нужно сделать, это отправить заголовок авторизации с client_id в ваши запросы. Это также если вы хотите загрузить изображения анонимно (без изображения
привязка к учетной записи), или если вы хотите создать анонимный
альбом. Это позволяет нам узнать, какое приложение обращается к API.

Authorization: Client-ID YOUR_CLIENT_ID

Я посмотрел на эти вопросы и попытался все там предложено, но ни один из них не помог.

JSON NSURLRequest с верительные грамоты

Swift получить запрос с параметрами

как сделать Http get и установить httpHeader в 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, что означает, что требуется авторизация. Что я делаю не так?

1 ответов


Я думаю, вам нужно вставить клиент-идентификатор строка для вашего фактического идентификатора клиента как для значения заголовка:

request.setValue("Client-ID <your_client_id>", forHTTPHeaderField: "Authorization")