当前位置: 首页 > 知识库问答 >
问题:

在Swift中用header生成HTTP请求

祝宏放
2023-03-14

Imgur API对发出get请求所需的授权进行了如下说明:

对于公共只读和匿名资源,如获取图像信息、查找用户注释等,所需做的就是在请求中发送一个带有client_id的授权标头。如果您希望匿名上传图像(图像
不与帐户绑定),或者希望创建匿名
相册,也可以使用此方法。这让我们知道哪个应用程序正在访问API。

Authorization: Client-ID YOUR_CLIENT_ID

我已经看了下面的问题,并尝试了那里建议的东西,但都没有帮助。

带凭据的JSON NSURLRequest

带参数的快速获取请求

如何在Swift中使Http获取和设置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个答案

谢璞
2023-03-14

我认为您需要将Client-ID字符串前置到实际的客户机ID之前,作为头值:

request.setValue("Client-ID <your_client_id>", forHTTPHeaderField: "Authorization")
 类似资料:
  • 我在swift 3中有一个项目,想提出一个GET请求。然而,Alamofire还没有更新到swift 3。何时Alamofire将支持swift 3以及如何用swift 3中的参数硬编码GET请求?

  • 问题内容: 我在iBooks中阅读了Apple的The Programming Language Swift ,但无法弄清楚如何在Swift中发出HTTP请求(例如cURL)。我需要导入Obj- C类还是只需要导入默认库?还是无法基于本机Swift代码发出HTTP请求? 问题答案: 您可以使用,而且还是因为你通常在Objective- C做。请注意,对于iOS 7.0和更高版本,它是首选。 使用

  • 我在iBooks上读过Apple的编程语言Swift,但不知道如何在Swift中发出HTTP请求(类似于cURL)。我需要导入Obj-C类还是只需要导入默认库?或者不可能基于本机Swift代码发出HTTP请求?

  • 我在iBooks中阅读了苹果公司的编程语言Swift,但不知道如何在Swift中发出HTTP请求(类似cURL的东西)。我需要导入Obj-C类还是只需要导入默认库?还是不能基于原生Swift代码进行HTTP请求?

  • 问题内容: 我正在尝试在Swift中运行HTTP请求,以将2个参数发布到URL。 例: 链接: 参数: 最简单的方法是什么? 我什至不想阅读回复。我只想发送该文件,以通过PHP文件对数据库进行更改。 问题答案: 在Swift 3及更高版本中,您可以: 哪里: 这将检查基本的网络错误以及高级HTTP错误。这也可以正确地对查询的参数进行转义。 请注意,我使用的of 来说明的正确结果,该结果是“百分比编

  • 我正在尝试在Swift中运行一个HTTP请求,将2个参数发布到一个URL。 示例: 链接: 参数: null 我甚至都不想看回复。我只是想通过一个PHP文件发送它来执行对我的数据库的更改。