簡體   English   中英

如何在Swift中將值傳遞給API?

[英]How do you pass a value to an API in Swift?

我幾乎是Swift的初學者,我正在嘗試傳遞一個值來調用API,該值來自輸入字段。 該API如下所示。 如何編寫代碼以通過文本字段傳遞ZIP_CODE的值?

https://iaspub.epa.gov/enviro/efservice/getEnvirofactsUVDAILY/ZIP/ZIP_CODE/JSON

@IBOutlet var zipLabel: UILabel!
@IBOutlet var zipInput: UITextField!
@IBOutlet var jsondataLabel: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()
    getJSON()      
}

@IBAction func btnAction() {
    zipLabel.text = zipInput.text
}

func getJSON(){
    let url = NSURL(string :"https://iaspub.epa.gov/enviro/efservice/getEnvirofactsUVDAILY/ZIP/10001/JSON")
    let request = URLRequest(url: url as! URL )
    let config = URLSessionConfiguration.default
    let session = URLSession(configuration: config)

    let task = session.dataTask(with: request){(data, response, error ) -> Void in
        if error == nil{
            DispatchQueue.main.async(execute: {
                let jsondata = JSON(data : data!)

                print(jsondata)
                print("-----")
                print(jsondata[0]["UV_INDEX"])

                let result =  jsondata[0]["UV_INDEX"].stringValue

                self.jsondataLabel.text = result
            })
        }else{
            print("There was an error")    
        }
    }
    task.resume()
}
func getJSON(_ zipcode : Int){



            let url = NSURL(string :"https://iaspub.epa.gov/enviro/efservice/getEnvirofactsUVDAILY/ZIP/\(zipcode)/JSON")

            let request = URLRequest(url: url as! URL )

            let config = URLSessionConfiguration.default

            let session = URLSession(configuration: config)



            let task = session.dataTask(with: request){(data, response, error ) -> Void in

                if error == nil{

                    DispatchQueue.main.async(execute: {

                        let jsondata = JSON(data : data!)

                        print(jsondata)

                        print("-----")

                        print(jsondata[0]["UV_INDEX"])

                        let result =  jsondata[0]["UV_INDEX"].stringValue

                        self.jsondataLabel.text = result
                    })

                }else{

                    print("There was an error")    
                }

            }
            task.resume()
    }

如果您的API給您有關GET請求的響應,則可以使用以下代碼-

@IBOutlet var zipLabel: UILabel!
@IBOutlet var zipInput: UITextField!
@IBOutlet var jsondataLabel: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

}

@IBAction func btnAction() {
    zipLabel.text = zipInput.text
    getJSON(zipcode: zipInput.text)
}

func getJSON(zipcode: String){
    let url = NSURL(string :"https://iaspub.epa.gov/enviro/efservice/getEnvirofactsUVDAILY/ZIP/10001/JSON&zipcode="+zipcode)
    let request = URLRequest(url: url as! URL )
    let config = URLSessionConfiguration.default
    let session = URLSession(configuration: config)

    let task = session.dataTask(with: request){(data, response, error ) -> Void in
        if error == nil{
            DispatchQueue.main.async(execute: {
                let jsondata = JSON(data : data!)

                print(jsondata)
                print("-----")
                print(jsondata[0]["UV_INDEX"])

                let result =  jsondata[0]["UV_INDEX"].stringValue

                self.jsondataLabel.text = result
            })
        }else{
            print("There was an error")    
        }
    }
    task.resume()
}

但是請注意,如果您的API給您POST請求的響應,則此代碼將無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM