gpt4 book ai didi

ios - Json 响应 "GET"请求 : "No session Found" - Swift

转载 作者:行者123 更新时间:2023-11-29 05:33:07 25 4
gpt4 key购买 nike

我想向 apache Web 服务器发出“GET”请求以检索一些数据。在发出上述请求之前,我登录并发出“POST”请求,Web 服务器打开一个新 session ,然后我收到 json 响应:

gotten json response dictionary is
["user": {
email = "asd@asd.it";
password = "<null>";\\ for security reason it doesn't return the password
sessionID = 6C61269BB7BB40682E96AD80FF8F1CB7;
}]

到目前为止,一切都是正确的。但是当我尝试发出“GET”请求来检索用户的数据时,我得到了以下响应:

gotten json response dictionary is
["message": {
errorCode = F01;
errorDetails = "No session is found in the server, either you have not set the JSESSIONID cookie or the session does not exists";
message = "No session Found";
}]

“POST”请求的代码是:

let urlComp = NSURLComponents(string: "http://localhost:8080/mnemosyne/auth")!

let postDict: [String:Any] = ["email": "asd@asd.it", "password" : "password"]
var items = [URLQueryItem]()

for (key,value) in postDict {
items.append(URLQueryItem(name: key, value: value as? String))
}

urlComp.queryItems = items
var urlRequestAuth = URLRequest(url: urlComp.url!, cachePolicy: .reloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 10.0 * 1000)
urlRequestAuth.httpMethod = "POST"

let postData = try? JSONSerialization.data(withJSONObject: postDict, options: [])
urlRequestAuth.httpBody = postData

let taskAuth = URLSession.shared.dataTask(with: urlRequestAuth) { (data, response, error) in
guard error == nil else {
print(error as Any)
return
}

guard let content = data else {
print("No data")
return
}

guard let json = (try? JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers)) as? [String: Any] else {
print("Not containing JSON")
return
}

print("gotten json response dictionary is \n \(json)")
}

taskAuth.resume()

这是“GET”的代码:

let url = URL(string: "http://localhost:8080/mnemosyne/rest/task")
var request = URLRequest(url: url!)

let taskTask = URLSession.shared.dataTask(with: request) { (data, response, error) in
guard error == nil else {
print ("error: \(error!)")
return
}

guard let content = data else {
print("No data")
return
}

guard let json = (try? JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers)) as? [String: Any] else {
print("Not containing JSON")
return
}

print("gotten json response dictionary is \n \(json)")
}

taskTask.resume()

有什么问题吗?如何在请求中传递我想要使用的 session ID?

最佳答案

我认为您需要在 GET 请求中发送 sessionID。

我首先会尝试一些实用程序,例如 Postman 或 RESTed 免费应用程序,来测试请求并了解如何发送正确的 POST 请求。

根据服务器实现 - 您可以将 session ID 作为 URL 的一部分、在 POST 正文或 POST header 中发送。

关于ios - Json 响应 "GET"请求 : "No session Found" - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57342038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com