var urlComponents = URLComponents(string: "https://jsonplaceholder.typicode.com/users/")
urlComponents?.queryItems = [URLQueryItem(name: "id", value: userId.id)]
var urlComponents = URLComponents(string: "https://jsonplaceholder.typicode.com/users/")
urlComponents?.queryItems = [URLQueryItem(name: "id", value: userId.id)]
var urlRequest = URLRequest(url: (urlComponents?.url!)!)
urlRequest.httpMethod = "GET"
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
print("urlRequest=====\(urlRequest)")
session.dataTask(with: urlRequest) { (data, response, error) in
guard let data = data else { return }
do {
let decoder = JSONDecoder()
let userRes = try decoder.decode([UserResponse].self, from: data)
self.delegate?.UserDetailsSuccess(userDetail: userRes)
} catch let error {
print("Error: ", error)
}
}.resume()
我得到的網址為: urlRequest=====https://jsonplaceholder.typicode.com/users/?id=1 實際網址:https://jsonplaceholder.typicode.com/users/1
我需要洗掉 ?id= How to remove this characters 。請幫忙。
提前致謝。
uj5u.com熱心網友回復:
URLQueryItem添加代表查詢分隔符的問號。
此 REST URL 不使用 URL 查詢,因此URLQueryItem根本不需要。使用字串插值添加用戶 ID。
URLRequest也不需要,GET 是默認設定,您不需要使用特殊配置
let url = URL(string: "https://jsonplaceholder.typicode.com/users/\(userId.id)")!
URLSession.shared.dataTask(with: url) { (data, response, error) in
if let error { print(error); return }
do {
let decoder = JSONDecoder()
let userRes = try decoder.decode([UserResponse].self, from: data!)
self.delegate?.UserDetailsSuccess(userDetail: userRes)
} catch {
print("Error: ", error)
}
}.resume()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/532907.html
標籤:IOS网址组件
下一篇:入口點沒有改變
