android类和php之间的会话处理


Session handling between android class and php

我在android和php工作。我调用api,这是在php编码。

我想管理这个android应用程序和php api之间的会话。

的意思是我想抗议直接调用我的api的用户在地址栏输入我的api的url。每当用户登录在我的android应用程序,然后一个会话应该在PHP端创建。因此,无论何时调用任何APi,那么应该首先检查会话值,然后根据用户验证,APi应该只允许有效的登录用户。

我使用这行代码:- DefaultHttpClient httpClient = new DefaultHttpClient();

我不知道该怎么做。请帮帮我。你可以给我提供合适的链接,但是请告诉我相关的内容,这样我的时间就不会浪费了。

提前感谢。

你可以创建一个Singleton到DefaultHttpClient,然后在发送HTTPRequest之前,对所有的连接使用这个…

:

public class SessionControl {
static private HttpClient httpclient = null;
public static HttpClient getHttpclient() {
    if( httpclient == null){
        SessionControl.setHttpclient(new DefaultHttpClient());
    }
    return httpclient;
}
public static void setHttpclient(HttpClient httpclient) {
    SessionControl.httpclient = httpclient;
}

}

然后,当你调用HttpClient时,你这样做:

HttpClient httpclient = SessionControl.getHttpclient();

从你的问题看来,你想在DefaultHttpClient调用之间存储PHPSESSID。

你可以尝试使用:HttpClientParams。setCookiePolicy (params, CookiePolicy.BROWSER_COMPATIBILITY);

在为DefaultHttpClient实例设置参数时。否则,您可以手动获取会话id并将其附加到每个请求中。

您可能正在服务器端创建某种会话id,移动应用程序将其检索并存储以供进一步使用。然后每次应用程序连接到服务器时,它在参数中给出这个id (www.example.com?id=some_id)。

编辑

这是关于从Android设备连接到PHP服务器的教程。它没有描述如何创建ID,但由于您可以处理连接,我相信您将能够创建ID并将其存储在数据库链接中。

还有一件事,在PHP中检索给定URL (www.example.com?id=some_id)中的参数,您必须使用$_REQUEST['id']变量。如果你想在给定的URL中发送更多的参数,用"&"符号分隔它(www.example.com?id=some_id&id2=some_id)。

请务必检查发送参数,因为有人可能会使用您的参数进行SQL注入。