String(data:theData,encoding:String.Encoding.utf8)返回nil

时间:2019-03-21 18:43:51

标签: json swift

session = URLSession(configuration: URLSessionConfiguration.default)
        let url = URL(string: "http://localhost:8080/menu?action=get_all")!
        let task = session.dataTask(with: url) { (data: Data?, urlResponse: URLResponse?, error: Error?) in
            if error == nil{
                if let theData = data{
                    print(String(data: theData, encoding: String.Encoding.utf8))
                    print("is main thread ? \(Thread.current.isMainThread)")
                }
            }
            self.session.finishTasksAndInvalidate()
        }
        task.resume()

我正在尝试使用Swift使用“ GET”请求从本地服务器获取JSON String

由于某种原因,它一直返回nil。我尝试使用String(decoding: theData, as: UTF8.self),它将返回带有�字符的值。

肯定是问题不在于服务器。我在Postman上测试了它,效果很好。

1 个答案:

答案 0 :(得分:2)

谢谢,在我的HTTPServlet响应中使用了response.setCharacterEncoding("UTF8");