在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