Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Passing key to URL request Swift

I need to fetch data from a web endpoint. I will include the instructions below. I am passing the the X-ACCESS-KEY incorrectly because I get the error that the key is invalid or the bin doesn’t belong to my account when I run the code. How do I correctly pass the key to the request then decode the response?

we’ve hosted a JSON file at at this url: https://api.jsonbin.io/v3/b/646bed328e4aa6225ea22a79. Your job is to write a script to
download the contents of the URL (hint: The X-ACCESS-KEY is $2b$10$Ke1iwieFO7/7qsSKU.GYU.oYXZMW1EeHrwd4xx9ylboJik5mstZk6)
sort the data by each elements ‘bar’ key
filter out elements where ‘baz’ is not divisible by 3
concatenate each elements ‘foo’ value

let url = URL(string: "https://api.jsonbin.io/v3/b/646bed328e4aa6225ea22a79")!
let key = "$2b$10$Ke1iwieFO7/7qsSKU.GYU.oYXZMW1EeHrwd4xx9ylboJik5mstZk6)"
var request = URLRequest(url: url)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer \(key)", forHTTPHeaderField: "X-Master-Key")

var jsonData: Data?
let task = URLSession.shared.dataTask(with: request) { (data, _, err) in
    if let error = err {
        print("Error: \(error)")
    } else if let data = data {
        jsonData = data
        processData()
    }
}

task.resume()

func processData(){
    if let jsonData = jsonData,
       let jsonObject = try? JSONSerialization.jsonObject(with: jsonData, options: []) as? [String: Any], let records = jsonObject["records"] as? [[String: Any]] {
      
    }
}

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Three issues:

  1. Joakim correctly stated that you have to specify just the key without leading Bearer .

  2. And the hint clearly says it’s X-Access-Key not X-Master-Key

    request.addValue(key, forHTTPHeaderField: "X-Access-Key")
    
  3. The closing parenthesis at the end is not part of the token.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading