我正在尝试从数据库中获取用户数据,并将其显示在我的应用中的帐户页面上。在我的PHP中,我将登录的用户存储在会话中。我发现要访问用户会话,我必须将sessionId添加到我的字符串请求中,如:
private void getUserData() {
SharedPreferences sharedPreferences = getSharedPreferences(Config.sharedPref, Context.MODE_PRIVATE);
String sessionId = sharedPreferences.getString(Config.SID, "SessionID");
StringRequest stringRequest = new StringRequest(Request.Method.GET, Config.SERVER_ADDRESS + "GetUserData.php?PHPSESSID=" + sessionId,
new Response.Listener<String>() {
将sessionId添加到请求中。但是我收到了意外的响应代码500错误,我认为它与管理cookie有关。我正在尝试做类似
的事情 CookieManager manager = new CookieManager();
CookieHandler.setDefault(manager);
但不确定如何执行此操作或将cookie管理器放在方法中的位置。 谢谢。
答案 0 :(得分:0)
有两种方法可以将SessionID
传递到您的服务器:
像您提到的那样在网址中发送SessionID
。
StringRequest stringRequest = new StringRequest(Request.Method.GET, Config.SERVER_ADDRESS + "GetUserData.php?PHPSESSID=" + sessionId, ...
在这种情况下,您不需要在请求中添加任何Cookie
。所以不需要设置CookieManager
。在php端,请确保您在URL中接受PHPSESSID
的配置,请查看here以获取参考。
将SessionID
放在您的http请求的Cookie
标头字段中。在这种情况下,您需要设置CookieManager
来管理将为您完成工作的Cookie。在这里,您不需要将sessionId作为URL参数发送。
你似乎在混淆这两种方式。