[英]Getting JSON Response from API Swift
在今天的早些時候,我能夠使用此API並在我的iPhone應用程序中獲得響應。 事實上,我一直試圖調試這么長時間,讓我相信我瘋了! 附件是我的控制台的截圖...
這是我的API調用的代碼。 使用Apple的URLSession並遵循許多堆棧溢出問題/教程我無法使用此功能。
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print("request failed \(error)")
return
}
do {
if let json = try JSONSerialization.jsonObject(with: data) as? [String: String], let result = json["result"] {
// Parse JSON
}
} catch let parseError {
print("parsing error: \(parseError)")
let responseString = String(data: data, encoding: .utf8)
print("raw response: \(responseString)")
}
}
task.resume()
每次我得到這個有趣的[BoringSSL]
錯誤和我已經完成的搜索沒有產生有效的修復我有的任何錯誤。
就像我說的,今天早些時候我有這個應用程序使用相同的API。 我已經嘗試了網站給我的密鑰以及他們在網站上使用的測試密鑰。 現在我想到了,我將使用我的代碼中的確切URL和屏幕截圖,並從我在瀏覽器中獲得的響應中截取屏幕截圖。 見下文:
通過我的應用中使用的確切網址收到以上回復。
在我的項目中嘗試過你的API。 有效。 您可以查看以下差異:
let urlTest = URL(string: "https://www.zipcodeapi.com/rest/wvyR5aWjHNUF80Z6kmr1bTuNojfzhmvtcmfBD8QNo9qbNAHy9FvBISINKF3W5i9J/multi-distance.json/99501/99501,%2085001,%2072201/km")
var request = URLRequest(url: urlTest!)
request.httpMethod = "GET"
let session = URLSession(configuration: .default)
let task : URLSessionDataTask = session.dataTask(with: request) { (data, response, error) in
let statusCode = (response as! HTTPURLResponse).statusCode
if statusCode == 200{
do {
let json = try JSON(data:data!)
}
catch {
print("Could not convert JSON data into a dictionary.")
}
}
}
task.resume()
打印json的描述:▿{“distance”:{“85001”:4093.922,“72201”:4962.6189999999997}}
可能你必須關閉傳輸層安全性,因為這對我有用。
轉到info.plist文件並添加名為App Transport Secrity Settings的屬性,並將其Allow Arbitrary loads選項設置為NO
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.