Ios 如何在Swift中将HTTP头添加到URL?

Ios 如何在Swift中将HTTP头添加到URL?,ios,swift,Ios,Swift,这是我的标题 我已经将这些参数添加到url中,如何在swift中将带有值“bearer”和api_键的标题添加到url中 var urlComponents = URLComponents(string: "https://api.yelp.com/v3/businesses/search")! urlComponents.queryItems = [ URLQueryItem(name: "query", value: "landmarks"),

这是我的标题

我已经将这些参数添加到url中,如何在swift中将带有值“bearer”和api_键的标题添加到url中

 var urlComponents = URLComponents(string: "https://api.yelp.com/v3/businesses/search")!

    urlComponents.queryItems = [
        URLQueryItem(name: "query", value: "landmarks"),
        URLQueryItem(name: "ll", value: "\(latitude), \(longitude)"),
    ]
你可以试试

let url = URL(string: urlStr) 
var request = URLRequest(url: url!) 
request.httpMethod = "POST" 
request.setValue("application/json", forHTTPHeaderField:"Content-Type")
request.setValue("Bearer \(yourToken)", forHTTPHeaderField:"Authorization") 
request.timeoutInterval = 60.0 
URLSession.shared.dataTask(with: request) {
        (data: Data?, response: URLResponse?, error: Error?) -> Void in
}.resume()
还是更好地利用


这对我有用,试试这个

 func handleData() {

        let urlStr = "YOUR URL"
        let param = ["email":"abc@gmail.com","password":"abc@1234","X-API-KEY":"YOURAPIKEY"]

        let user = "admin"
        let password = "1234"
        let credentialData = "\(user):\(password)".data(using: String.Encoding.utf8)!
        let base64Credentials = credentialData.base64EncodedString(options: [])
        let headers = ["Authorization": "Basic \(base64Credentials)"]

        Alamofire.request(urlStr, method: .post, parameters: param, encoding: JSONEncoding.default, headers:headers).responseJSON{
            response in

            switch response.result{
            case .success:
                print(response)
                break

            case .failure(let error):
                print(error)
            }
        }
    }
 func handleData() {

        let urlStr = "YOUR URL"
        let param = ["email":"abc@gmail.com","password":"abc@1234","X-API-KEY":"YOURAPIKEY"]

        let user = "admin"
        let password = "1234"
        let credentialData = "\(user):\(password)".data(using: String.Encoding.utf8)!
        let base64Credentials = credentialData.base64EncodedString(options: [])
        let headers = ["Authorization": "Basic \(base64Credentials)"]

        Alamofire.request(urlStr, method: .post, parameters: param, encoding: JSONEncoding.default, headers:headers).responseJSON{
            response in

            switch response.result{
            case .success:
                print(response)
                break

            case .failure(let error):
                print(error)
            }
        }
    }
let urlString = ""
let parameters = ["categories.confident": "true", "source.name" : "The New York Times", "cluster" : "false", "cluster.algorithm" : "lingo", "sort_by" : "published_at", "sort_direction" : "desc", "cursor" : "*", "per_page" : "10"]
let headers = ["X-AYLIEN-NewsAPI-Application-ID": "App-ID-Here", "X-AYLIEN-NewsAPI-Application-Key": "App-Key-Here"]

var urlComponents = URLComponents(string: urlString)

var queryItems = [URLQueryItem]()
for (key, value) in parameters {
    queryItems.append(URLQueryItem(name: key, value: value))
}

urlComponents?.queryItems = queryItems

var request = URLRequest(url: (urlComponents?.url)!)
request.httpMethod = "GET"

for (key, value) in headers {
    request.setValue(value, forHTTPHeaderField: key)
}

let task = URLSession.shared.dataTask(with: request) { (data, response, error) -> Void in
    print(response)
}
task.resume()