为什么cookie为null?

时间:2013-05-22 13:26:31

标签: android cookies httpclient

我创建了一个带灯的网络服务器(linux + apache + mysql + php)。我想设置cookie来保存用户信息,例如userid,username。所以load.php是这样的:

....
///login successful
session_start(); 
$_COOKIE["userid"]=$userid;

$response["success"]=1;
$response["message"]="load successful";
echo json_encode($response); 
...

在Android LoadActivity中,我创建了一个类WebLoader扩展AsyncTask,并重写函数String doInBackground(String... params),如下所示:

client=new DefaultHttpClient();
HttpPost post=new HttpPost(url_up);
...
HttpResponse response=client.execute(post);                 
HttpEntity entity=response.getEntity();
CookieStore mCookieStore = client.getCookieStore();
List<Cookie> cookies = mCookieStore.getCookies();
if(cookies.isEmpty())
   Log.d("cookie","cookie is none");
for (int i = 0; i < cookies.size(); i++) {
 if("userid".equals(cookies.get(i).getName()))
 {
        userid=Integer.parseInt(cookies.get(i).getValue());                 
  }
}

当我运行应用程序时,logcat说:cookie是none。 为什么Cookie不是?我已将它设置为load.php。

1 个答案:

答案 0 :(得分:0)

您应该使用setcookie()设置Cookie。以你的例子:

setcookie("userid", $userid, time() + 60*60*24, "/");

这将设置一个名为userid的cookie,其值为$userid,并将在设置后的31天后过期。