当前位置:  开发笔记 > 前端 > 正文

在Swift中使用标头发出HTTP请求

如何解决《在Swift中使用标头发出HTTP请求》经验,为你挑选了1个好方法。

我正在尝试向Imgur API发出HTTP请求.我正在尝试检索与标签"cats"相关的所有图像.根据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请求

如何在Swift中创建一个Http get并设置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的状态代码,这意味着需要授权.我究竟做错了什么?



1> 小智..:

我认为您需要将Client-ID字符串添加到您的实际客户端ID以及标头值:

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

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有