我在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注入。