今天早些时候,我能够使用此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和屏幕截图,并从我在浏览器中获得的响应中截取屏幕截图。见下文:
收到以上回复,并在我的应用中使用了确切的网址。
答案 0 :(得分:2)
在我的项目中尝试了您的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的打印说明: ▿{ “距离”:{ “85001”:4093.922, “72201”:4962.6189999999997 } }
答案 1 :(得分:1)
可能您必须关闭传输层安全性,因为这对我有用。
转到info.plist文件并添加名为应用传输安全设置的属性,并将允许任意加载选项设置为否 < / p>
希望这有帮助。