Mik*_*ara 6 url nsurlsession swift
我不想分享实际链接,因为它可能有一些私人信息,所以如果它不起作用,请不要感到惊讶。
我有一个看起来像这样的链接: www.somelink.com/stuff/searchmembers?member=John
还有一些我需要传递的标题,比如 Login: Admin, Password: Admin
当我使用这个网站时,一切似乎都很好,我放了链接,把它设为 GET 并把标题放在 key:value 格式中,结果我得到了所有成员的列表,但是我怎么能用 URLSession 做同样的事情? 这是我目前拥有的,我什么也没有得到。我在那里做错了什么?
func getAllMembers(urlString: String) {
guard let url = URL(string: urlString) else { return }
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Admin", forHTTPHeaderField: "Login")
request.setValue("Admin", forHTTPHeaderField: "Password")
request.httpBody = "member=John".data(using: .utf8)!
URLSession.shared.dataTask(with: request) { (data, response, error) in
print(response)
print(data)
}.resume()
}
Run Code Online (Sandbox Code Playgroud)
这member=John
是 URL 查询参数,而不是请求正文的一部分。因此您需要将其添加到 URL 本身。
func getAllMembers(urlString: String) {
guard let url = URL(string: "\(urlString)?member=John") else { return }
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Admin", forHTTPHeaderField: "Login")
request.setValue("Admin", forHTTPHeaderField: "Password")
URLSession.shared.dataTask(with: request) { (data, response, error) in
print(response)
print(data)
}.resume()
}
Run Code Online (Sandbox Code Playgroud)
您member=John
实际上是一个 URL 查询参数,因此它应该是您的 URL 的一部分,而不是 URLRequest。
您应该使用 URLComponents,因为它会自动对必要的内容进行百分比编码(例如,如果 John 有一个像 一样时髦的用户名member=J%hn
怎么办?)(这在过去让我很头疼)。
func getAllMembers(urlString: String) {
//URLComponents to the rescue!
var urlBuilder = URLComponents(string: urlString)
urlBuilder?.queryItems = [
URLQueryItem(name: "member", value: "John")
]
guard let url = urlBuilder.url else { return }
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Admin", forHTTPHeaderField: "Login")
request.setValue("Admin", forHTTPHeaderField: "Password")
URLSession.shared.dataTask(with: request) { (data, response, error) in
print(response)
print(String(data: data, encoding: .utf8)) //Try this too!
}.resume()
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4559 次 |
最近记录: |