Я пытаюсь сделать запрос (GET) к REST API. Этот API возвращает отчеты о погоде в аэропорту в формате JSON.
Я пытаюсь достичь следующего: пользователь вводит идентификационный код аэропорта, который изменяется в URL-адрес. Когда он / она нажимает кнопку «Запрос», к API выполняется запрос GET, который затем отображает результат в UILabel.
Я дошел до того, что смог выполнить вызов с помощью кнопки, и ответ сервера печатается в консоли, но я не могу распечатать его в UILabel.
Это мой код:
//
// ViewController.swift
// urltest
//
// Created by Stefan Oomen on 06/05/2020.
// Copyright © 2020 FlyTechSoft. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var metarResponse: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
@IBAction func onButtonClick(_ sender: UIButton) {
let url = URL(string: "hhttps://website.rest/api/metar/location?options=&airport=true&reporting=true&format=json&onfail=cache")!
var request = URLRequest(url: url)
request.addValue("My_API_KEY", forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let response = response {
print(response)
if let data = data, let body = String(data: data, encoding: .utf8) {
print(body)
}
} else {
print(error ?? "Unknown error")
}
}
task.resume()
}
}
В URL-адресе GET мне нужно только изменить «Местоположение?» часть, используя ввод от пользователя из 'icaoTextField' UITextField:
https://website.rest/api/metar/location?options=&airport=true&reporting=true&format=json&onfail=cache
Я новичок в этом, поэтому вся помощь приветствуется. Спасибо! PS. Небольшой подвопрос: можно ли выбрать и использовать только определенные c части результата вызова REST API?