【问题标题】:Url works in Postman but not in Swift appUrl 在 Postman 中有效,但在 Swift 应用程序中无效
【发布时间】: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"

标签: swift api url request


【解决方案1】:

我的网址中有一个 Swift 不接受的空格。显然 Postman 和浏览器仍然可以使用空格进行调用,但 Swift 不行。感谢@workingdog 解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2018-07-14
    • 2020-04-28
    • 1970-01-01
    • 2021-02-20
    • 2021-11-02
    相关资源
    最近更新 更多