首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过android验证rest (PHP)会话

通过android验证rest (PHP)会话
EN

Stack Overflow用户
提问于 2017-02-24 05:46:13
回答 1查看 61关注 0票数 1

我已经创建了一个rest,它正在处理会话。我想通过android验证这个会话。

我用于访问API的ANDROID代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        URL url = new URL("xxx.xxx.x.x./dir/file_name.php");
        HttpURLConnection connection = (HttpURLConnection)url.openConnection();
        connection.setRequestMethod("POST");
        DataOutputStream streamWriter = new   DataOutputStream(connection.getOutputStream());
        streamWriter.write(parameters.getBytes());
        streamWriter.flush();
        streamWriter.close();

        InputStreamReader streamReader = new InputStreamReader(connection.getInputStream());
        BufferedReader br = new BufferedReader(streamReader);
        String line;
        StringBuilder sb = new StringBuilder();

        while ((line = br.readLine()) != null) {
            sb.append(line);
        }
        br.close();
        webResult= sb.toString();
        return webResult;

用于检查会话的PHP代码(它在浏览器中很好地工作)

//在这里启动PHP标记

$sessionID =“某物”;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
session_start();

如果(!isset( $_SESSION‘’Id‘)\ $sessionID != $_SESSION’‘Id’){

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo "Invalid session";
die();

}否则{

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo "Session is active.";

}

//关闭这里的PHP标记

EN

回答 1

Stack Overflow用户

发布于 2017-02-24 06:19:46

我不确定你能不能使用Android的会话。会话的想法是使用浏览器的cookie来存储会话ID,我认为Android应用程序不允许cookie。

但是,您可以做的是类似的事情:

1.在中生成一个随机字符串

可以使用This function生成随机字符串。

2.使用过期时间将其存储在数据库的某个地方。

基本上,如果您希望会话持续1小时,则存储一个现在等于+1小时的过期时间。

3.将其发送到应用程序并将其存储在应用程序中的某个地方

现在,您将如何使用一个随机字符串,即会话ID。它存储在App端和服务器端。

现在,只要您想要存储会话变量,就可以检索会话ID (从应用程序中发送它,然后检查它是否存在于服务器端)。然后,使用以下属性将变量存储在数据库中:Session_id, var_name, var_value

然后,当您想检索会话变量时,可以通过session_id和var_name来实现。

然后,基本上,如果session_id已经过期(当前日期>到期日期),您将删除这个会话id中的所有变量,并生成一个新的空变量。

希望这会有所帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42440244

复制
相关文章
Vue 实现前进刷新,后退不刷新的效果
假设列表页为 list.vue,详情页为 detail.vue,这两个都是子组件。
谭光志
2020/09/28
3K0
RDP你的凭据不工作/RDP密码不刷新
如果你不属于上述的情况,请查看:https://learn.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/troubleshoot/rdp-error-general-troubleshooting#check-whether-a-group-policy-object-gpo-is-blocking-rdp-on-a-local-computer
阿龙w
2022/12/02
12.7K0
RDP你的凭据不工作/RDP密码不刷新
CDN刷新目录不生效?
选择 “刷新变更资源” 模式,当用户访问匹配目录下资源时,会回源获取资源的 Last-Modify 信息,若与当前缓存资源一致,则直接返回已缓存资源,若不一致,回源拉取资源并重新缓存;
任雯霄
2020/12/30
6.1K1
layui打开iframe窗口不刷新的问题
这个问题可能是我工作以来,最死磕不算bug的一个了,晚上熬夜到三点钟,终于找到了解决的办法。
王小婷
2019/04/29
4K0
layui打开iframe窗口不刷新的问题
vue 参数变化页面不刷新
查询参数变化,不刷新 http://localhost:8081/#/detail?id=1 http://localhost:8081/#/detail?id=2 参数变化,不刷新 http://
onety码生
2018/11/21
2.5K0
js – form表单提交不刷新
大家已经发现了, 当我们点击submit提交form表单的时候, 他会刷新一次, 如果不想它刷新的话有下面两种方法:
全栈程序员站长
2022/08/01
14.6K0
WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围
WPF 的 VisualBrush 可以帮助我们在一个控件中显示另一个控件的外观。这是非常妙的功能。
walterlv
2023/10/22
4450
WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围
MVC3和MVC4中CRUD操作
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116252.html原文链接:https://javaforall.cn
全栈程序员站长
2022/01/24
5070
控制器操作
一.控制器操作 我们首先复习一下基本的控制器定义和方法执行方式。 第一步:控制器默认创建在当前模块下的 Controller 目录下; 第二步:按照指定的命名规则:控制器名(首字母大写)+Controller.class.php; 第三步:控制器里的方法必须是 public 公共的; //控制器 class UserController extends Controller { public function index() { //index()方法在URL访问时可以忽略 } } URL 访问:http://localhost/demo39/User/index/
PM吃瓜
2019/08/13
6470
Vue 改变数据,页面不刷新的问题
最近在用 element-ui 开发一个网站,使用 table 组件时,发现修改完数据,有时候会延迟一两秒,页面才会发生变化。
谭光志
2020/09/28
3.4K0
vue强制刷新页面方法_vue页面回退不刷新
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
5K0
控制器操作【2】
三.跳转和重定向 ThinkPHP 在操作数据库时,需要跳转和重定向页面。ThinkPHP 提供了一组方法来解决了这个问题。 //成功和失败的跳转 class UserController extends Controller { public function index() { $flag = true; if ($flag) { //会跳转到:http://localhost/demo39/User/all $this->success('新增成功!', '../User/all'); } else { //会跳转到本页的上一页 $this->error('新增失败!'); } } } PS:success()方法和 error()方法,第一个参数是提示信息、第二个跳转的地址、第三个跳转时间。默认情况下 success()方法是 1 秒,error()方法是 3 秒。
PM吃瓜
2019/08/13
5730
控制器操作【3】
五.请求类型 ThinkPHP 提供了一组常量来判断当前请求是否是 GET、POST 等。通过判断请求处理不同的业务逻辑。 常量 含义 IS_GET 判断是否 GET 提交请求 IS_POST 判断是否 POST 提交请求 IS_PUT 判断是否 PUT 提交请求 IS_DELTE 判断是否 DELETE 提交请求 IS_AJAX 判断是否 AJAX 提交请求 //判断是否GET请求 if (IS_GET) { echo '是GET请求'; } else { echo '不是GET请求'; }
PM吃瓜
2019/08/13
5680
MVC3教程之新手入门
你还可以通过Web Platform Installer将这些软件一起安装到本地。
拓荒者IT
2019/09/26
1.5K0
MVC3教程之新手入门
git版本控制器的相关操作
git status 查看仓库状态 git diff <filename> 查看为提交的修改 git log 查看提交的日志 git log --pretty=oneline 单行显示
java攻城狮
2020/10/10
5490
git版本控制器的相关操作
学会这个小技巧,SSH 会话连接永远不超时!
通过指定时间间隔在客户端和服务器之间发送空数据包,可以避免 SSH 超时。 防止 SSH 客户端超时
iMike
2019/10/10
5.2K0
SDRAM控制器操作时序
IDLE 状态到WRITE 状态: ​ 1) 在IDLE 状态需要先给ACT 命令激活某一行,此时处于Row Active 状态; ​ 2) 在Row Active 状态之后,给Write 命令则会进入WRITE 状态; ​ 3) 在WRITE 状态后,再给一次Write 命令,就可以继续写入数据。 WRITE 状态到IDLE 状态: ​ 1) 在WRITE 状态给PRE 命令,则SDRAM 将跳出WRITE 状态进入Precharge状态; ​ 2) 在Precharge 状态后,就会自动进入IDLE 状态了。
全栈程序员站长
2022/09/16
7110
SDRAM控制器操作时序
已成功刷新dns解析缓存后怎么操作_刷新dns缓存的命令
步骤一、首先按住键盘win+R组合键,打开了一个运行窗口,之后在运行窗口上输入“CMD”命令,执行该命令即可打开命令提示符窗口了。
全栈程序员站长
2022/11/15
22K0
MVC 3.0 的新特性 摘要
MVC经过其1.0和2.0版本的发展,现在已经到了3.0的领军时代,随着技术的不断改进,MVC也越来越成熟。使开发也变得简洁人性化艺术化。
Isaac Zhang
2019/09/10
2.6K0
MVC 3.0 的新特性

            摘要
点击加载更多

相似问题

用于检查按下的键的函数的setTimeout (javascript)

10

函数键按下javascript

13

按下Javascript多个键

32

使用javascript按下"Delete“键?

413

扩展javascript键按下函数

35
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文