在Swift中使用头进行HTTP请求

我正在尝试向Imgur API发出HTTP请求。 我试图检索与标签“猫”相关的所有图像。 根据Imgur API的网址是:https://api.imgur.com/3/gallery/t/cats

Imgur API声明以下关于获取请求所需的授权:

对于公共只读和匿名资源,例如获取图像信息,查找用户注释等,您只需在您的请求中发送带有您的client_id的授权标头。 如果您想匿名上传图片(没有图片,这也适用)
被绑定到一个帐户),或者如果你想创建一个匿名
专辑。 这让我们知道哪个应用程序正在访问API。

Authorization: Client-ID YOUR_CLIENT_ID

我已经看了下面的问题,并尝试了一些建议,但是没有一个帮助过。

带有凭证的JSON NSURLRequest

带参数的Swift GET请求

如何让Http在Swift中获得并设置httpHeader?

我目前的代码是这样的:

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的状态代码,这意味着需要授权。 我究竟做错了什么?


我认为你需要将Client-ID字符串作为标题值附加到你的实际客户端ID:

request.setValue("Client-ID <your_client_id>", forHTTPHeaderField: "Authorization")
链接地址: http://www.djcxy.com/p/81443.html

上一篇: Making HTTP Request with header in Swift

下一篇: Upload image anonymously to Imgur