【发布时间】:2021-09-13 00:00:43
【问题描述】:
我有一个可以在 Postman 和浏览器中使用的网址,但在 app 中却不行。 我有一个 if let url = URL(string: urlString) 行,但显然 URL(string: urlString) 返回 nil 所以它不会进入块。它实际上并没有抛出错误,所以我实际上无法搜索错误。
我尝试查看其他人的类似问题,但没有找到解决方案。任何帮助,将不胜感激。如果您可以将我指向另一个具有潜在解决方案的帖子,我也会很感激。谢谢。
这是我的代码。我以前用过很多次都没有问题。
func performRequest<T: Codable>(urlString: String, returnType: T.Type, completion: @escaping (Result<T, Error>) -> Void ) {
print("\n\(#function)")
if let url = URL(string: urlString) { // <--- FAILS RIGHT HERE
let session = URLSession(configuration: .default)
let task = session.dataTask(with: url) { (data, _, error) in
if let error = error {
completion(.failure(error))
return
}
guard let data = data else { return }
let decoder = JSONDecoder()
do {
let decodedData = try decoder.decode(T.self, from: data)
completion(.success(decodedData))
} catch let decodingErr {
completion(.failure(decodingErr))
}
}
task.resume()
} else {
print("Something went wrong with the url")
}
}
【问题讨论】:
-
urlString的实际值是多少? -
发布
urlString。这很可能是您提供的格式问题。 -
@RTXGamer 您应该对该链接的用途提供一些说明。例如。这是一个重复的问题吗?类似的解决方案?如何做某事的一般参考?等等,对一些描述很有用。
-
删除东京和日本之间的空格" 像这样 "...query=tokyo,japan&output=JSON"