Swift 5 URLSession API密钥传递失败

问题描述 投票:0回答:1

我正在尝试从标头中具有必需api键的URL检索数据。当我将其输入任何浏览器并打印出JSON数据时,该URL即可工作,但是当我尝试从swift5提取数据时,出现401错误。我是新手,我认为这可能是我创建请求的方式。我尝试使用不需要api键的URL从同一应用程序发出另一个请求,并且我能够无错误地打印和操作JSON数据。我也允许此测试应用程序进行ATS任意加载,因为它是一个http地址。

下面是我正在使用的代码。我尝试使用setValue或addValue进行多种变体,并更改了Authorization字段值,以在my_api-key之前包含Basic或Bearer。我想不使用Alamo来执行此操作。预先感谢您的帮助。

        let url2 = URL(string: "http://some.website.org/folder")
        guard let requestUrl = url2 else { fatalError() }
        var request2 = URLRequest(url: requestUrl)
        request2.httpMethod = "POST"
        request2.setValue("application/json", forHTTPHeaderField: "Accept")
        request2.setValue("application/json", forHTTPHeaderField: "Content-Type")
        request2.setValue("my_api_key", forHTTPHeaderField: "Authorization")
        let task2 = URLSession.shared.dataTask(with: request2) { (data, response, error) in
                // Check for Error
                if let error = error {
                    print("Error took place \(error)")
                    return
                }
                // Convert HTTP Response Data to a String
                if let data = data, let dataString = String(data: data, encoding: .utf8) {
                    print("Response data string:\n \(dataString)")
                }
        }
        task2.resume()
ios swift api nsurlrequest http-status-code-401
1个回答
0
投票
var request = URLRequest(url: url) var defaultHeaders = request.allHTTPHeaderFields ?? [:] defaultHeaders["Authorization"] = "my_api_key" request.allHTTPHeaderFields = defaultHeaders
© www.soinside.com 2019 - 2024. All rights reserved.