手机端应用怎么访问服务器?

手机当主力机?用Termux配置SSH密钥,5分钟搞定远程服务器免密登录 本文详细介绍了如何利用Termux在手机上配置SSH密钥,实现远程服务器免密登录。通过Termux的完整Linux环境,用户可以快速生成和管理SSH密钥,优化手机端SSH连接配置,提升移动办公效率。特别适合技术人员在紧急情况下使用手机处理服务器事务。 阅读详情

现在的手机端应用,不管是iOS还是Android, 不联网的几乎寥寥无几。

那手机的的应用怎么调用服务器提供的接口,来实现业务功能呢?   在设计的时候需要考虑三方面的问题

【通信协议】

其实很简单, 最常见的方法就是利用Http协议, 服务器端对外提供Http的接口;客户端向服务器发出GET, POST请求, 调用接口,从服务器的响应中获取数据。 

当然写Http底层的代码也很累, 你得把数据组织成Http协议的header ,body ,通过网络发送出去。   

还得解析服务器的响应, response code (像200, 500 ), response body 等;  

如果要遇到发送文件,还得支持MultiPart。 

绝对是又脏又累的活,还很容易出错。

还好现在不少开源的代码已经替你把这些脏活累活已经干了,可以直接使用, 例如大名鼎鼎HttpClient , 使用这些代码你完全不用考虑Http实现的细节, 只需要知道服务器端接口的协议即可。 

【 接口协议】

主要包括三个部分 

(1) 接口的url :    例如 https://www.mybank.com/interface/login 

(2) 是GET 还是 POST  ? 

(3) 参数 , 例如 username=xxxx , password=xxxx

(4) 响应的数据  , 可以是xml , 也可以是json ,  json 现在的使用比较广泛。 

知道了这些东西, 可以轻松的写一段HttpClient 代码来调用了, 下面的代码就是通过Post的方式来向服务器端发送用户名和密码, 做登录操作

Request.Post("https://www.mybank.com/interface/login")

    .bodyForm(Form.form().add("username",  "vip").add("password",  "secret").build())

    .execute().returnContent();

注意上面的代码用了HttpClient 的Fluent API,  这个API用起来有一口气写到底的感觉, 读起来很舒服。 

这里能找到Fluent API的细节, 这里再强调一下, 开源软件自带的例子和教程是非常好的学习资料, 网上很多的文章其实就是对这些东西的破碎的翻译, 最好是练好英文, 阅读最权威的,原汁原味的资料。 

【 会话管理】

我们知道,用户通过浏览器登录网站以后,  服务器可以产生session (会话), 这个session 通常会以cookie的方式(在Http协议的Header 中)发送给浏览器, 浏览器需要保存起来, 再次访问网站的时候, 会把cookie带过去, 这样服务器就知道用户是谁了。 

session 一般有个过期时间,例如30分钟, 超过这个时间如果浏览器不再访问的话, 这个session 就过时了, 需要重新登录。 

手机端应用当然也可以模拟浏览器, 以同样的方式处理,  登录以后,就把服务器发的session ID 保存起来, 下次访问其他接口时把这个session 发过去就可以了。
 

但是你仔细想一下,手机和浏览器是不一样的: 手机端经常是登录以后, 可以长时间不操作(例如7天), session 也不会过期。

很多手机端应用可以保持很长时间的会话状态, 例如7天以内不操作都不会过期, 7天以后才会要求重新登录。 

这样服务器针对浏览器搞的Cookie 超时时间 30分钟就太短了。 

换句话说,手机端应用由于操作的特性, 需要保持一个长会话(3天, 7天。。), 传统的session机制不合适。

这时候需要我们自己来设计实现一个会话的管理机制:

1. 手机端应用调用服务器端的登录接口。

2. 服务器生成一个token , token 可以通过算法设计成一个随机的字符串, 让黑客无法猜出。 服务器把token 放到缓存或者数据库中, 设置一个过期时间,例如7天

3. 服务器把token 发回给手机端

4. 手机端保存该token ,  每次访问其他接口的时候需要把token 也发到服务器端做认证, 如果服务器端发现token 过期, 就会要求手机端重新登录

这样就实现了一个长时间的会话管理。

-----------------------------------------------------------------------------------

码农翻身公共号(coderising) : 由工作15年的IBM架构师创建,分享编程和职场的经验教训。

回复下面的关键字,查看更多文章

牛人 键盘侠 留学 读书 调试 烂代码 小白 培训

数据结构 代码腐化 无聊 迷茫 刚工作 死锁 简历  真实项目

HTTP Session XML AJAX TOMCAT 反射 

加入码农翻身QQ群:135769418 每周日晚9点至10点定期授课,不容错过。

长按二维码, 关注"coderising"

0?wx_fmt=jpeg


DedeBIZ资源系统源码 高仿XDGAME模板源码 在系统设置-模板风格 填写模板文件夹名称dczyw即可。下载完程序解压出来 src文件夹就是程序所有的文件。然后把模板下载好解压出来直接拖进src文件夹即可。上传src文件夹内的所有文件到服务器。高仿XDGAME 手机端自适应。 阅读详情

相关推荐

abaqus2matlab的安装与使用:如何用matlab提取abaqus的odb结果

官网abaqus2matlab官网地址matlab社区地址matlab社区地址在这里可以看到.m文件的源码论文:Abaqus2Matlab: A suitable tool for finite element post-processingabaqus2matlab可以处理.inp、.fil、.odb三种类型的文件。.inp文件:处理功能就在于只是单纯的输出inp文件,由于我自己写了自己的函数,不需要用到这个功能。

qianxin1234的博客 2019

android中访问本地服务和远程服务的方法

我们知道要访问服务里的方法必须要是绑定服务,bindService,而不是startService,他们俩的区别在这里就不赘述了. 1,怎么访问本地服务里面的方法: 首先我们来定义一个Service public class LocalService extends Service { @Override public IBinder onBind(Intent intent...

weixin_33713707的博客 239

锐捷交换机路由器配置全攻略:从基础命令到高级功能(附常用命令速查表)

本文提供锐捷交换机路由器配置全攻略,涵盖从基础命令到高级功能的详细指南,包括VLAN划分、DHCP配置、链路聚合等实用技巧,并附常用命令速查表,帮助网络管理员快速掌握锐捷设备运维。

weixin_29285605的博客 519

移动端访问本地服务服务

移动端链接本地服务器,访问本地服务器

qq_54601164的博客 749

某讯天御滑块验证码逆向实战:从参数解析到环境对抗

本文详细解析了某讯天御滑块验证码的逆向工程实战技巧,从关键参数解析到浏览器环境模拟对抗。重点介绍了collect、eks等参数的逆向思路,以及如何通过puppeteer等工具补全环境检测,帮助开发者有效突破验证码防护。文章还提供了常见错误解决方案和性能优化建议,是验证码逆向领域的实用指南。

weixin_29325007的博客 441

3D打印切片软件Cura及CuraEngine原理分析

引言         年初开始进入3D打印行业,受命以Cura为基础,研发一款自主的3D打印切片软件。         自主研发要取其长处,补其不足,首先自然是要搞清楚Cura到底做了什么,读Cura的代码是必需的。我一向都觉得比起自己写代码来,读别人的代码是一个漫又而痛苦的过程,读者的思想与写者总有偏差,往往又无法验证自己的猜想是否正确,只叹人脑不是电脑,无法把眼前的代码从头到尾执行一遍...

AiDiShengDeXiaoWu的博客 4424

手机远程连接服务器app全介绍(经典)

春节临近,相信大家都有远程处理突发情况的需求,下面是波哥为大家整理的市面上常见手机连接linux或者连接window的app,本文介绍工具排名不存在任何维度的先后排序,任何排序等信息都不作为商业推荐依据。社区版工具1. Microsoft Remote Desktop特点: 官方Microsoft提供的远程桌面应用,支持RDP协议。优势: 直接由Microsoft支持,集成度高,安全性较好。劣势:...

IT运维技术圈 6428

AD56XXR系列DAC驱动设计:SPI接口、寄存器配置与嵌入式工程实践

数模转换器(DAC)是嵌入式系统实现高精度模拟控制的核心器件,其性能取决于通信协议可靠性、寄存器配置准确性及硬件协同设计能力。基于SPI总线的电压输出型DAC广泛应用于工业控制、光模块偏置、传感器校准等场景,需兼顾静态精度、动态响应与低功耗特性。AD56XXR系列作为典型集成内部基准与多通道同步更新能力的12/14/16位DAC,支持轨到轨输出与灵活掉电模式,为资源受限MCU提供可移植固件范式。本文围绕SPI时序约束、16位指令字解析、LDAC同步机制及精度补偿策略展开,覆盖从硬件连接、初始化流程到量产级可

weixin_33481022的博客 612

javaweb 服务器 提供SOAP协议接口,android客户端调用代码实现过程

每次我自己在android端写webservice,或者rest接口的时候,都不知道后台做了啥,也不知道怎么就连接到了后台,因此,我就想知道后台到底怎么写的,我先写了个非常简单的Java web提供webservice接口,并且写了个android客户的测试,虽然写出来了,发现了解还不够深入,最少知道他是怎么回事,rerst的后面有时间在写一下看,如果写好了在补上 在写之前最好有点j2ee基础,

Baple的专栏 1311

从CAD到Web:高效转换STEP/IGES模型为GLB格式的实践指南

本文详细介绍了如何将工业设计中的STEP/IGES模型高效转换为Web友好的GLB格式。通过PythonOCC和gltf-pipeline等工具链,实现从CAD到Web的无缝转换,大幅提升模型加载速度和展示效果。文章包含实战案例、优化技巧和常见问题解决方案,帮助开发者快速掌握3D模型转换技术。

weixin_29072299的博客 510

软件设计师---UML

软件设计师---UML

我从不打没有准备的仗! 1万+

手机客户端和服务器的交互步骤

1、手机端和服务端的交互是通过接口实现的,也就是说你需要通过服务端将你的对应的增删改成的方法映射成一个网络路径,如http://com.eoe/login.php这样的路径,然后你的客户端通过httpClient请求这个路径并传递对应的参数,服务端会接收到你的请求,然后根据你请求的路径去调用对应的方法,并且根据你传递的参数进行判断,如登陆,会根据你传递的用户名密码判断是否正确,然后将判断结果在同一

calvin367的专栏 2472

harbor x509: certificate signed by unknown authority【20251222】

本教程通过「合并证书链(服务器端)+ 预置根 CA(客户端)」彻底解决了自签名证书的 x509 错误,同时集成了 Trivy 漏洞扫描,实现了 Harbor 从搭建到实用的全流程。证书链合并是服务器端的关键,确保客户端获取完整信任路径;客户端需同时配置「系统信任库 + Docker 信任目录」,避免 Docker 独立信任机制导致的问题;所有 IP 需保持一致(Harbor 配置、证书绑定、客户端访问),是避免错误的基础。

老韩的Linux云计算架构师进阶之路 682

【服务器部署】云端部署Gradio情感聊天bot应用(ubuntu服务器+Nginx反向代理+内网穿透)

Gradio是一个常用于创建机器学习和深度学习的Web应用程序,它提供了一个用户友好的界面,允许开发者进行快速构建和部署并制作可视化界面,本文会介绍如何将Gradio应用部署到云服务器上,并使用反向代理来实现外链访问。

wzhyyds的博客 2145

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

手机访问本地php项目遇到的问题及解决

手机访问本地php项目遇到的问题及解决 做html5的本地应用要调试后台,学了下php 按照和连j2ee的时候一样,电脑发射wifi,ipconfig..等等 发现tomcat的可以访问,apache的不能访问,搜索好久,没找到解答, java可以 php不行,就想是不是httpd.conf的问题,但是修改httpd.co...

weixin_30436101的博客 485

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

手机浏览器访问本地部署的tomcat服务器web应用

回顾了电脑端访问本地tomcat服务器发布的web应用url,并介绍了一下通过手机端浏览器访问此应用的过程。

2301_78149288的博客 2581

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

手机连接本地apache服务器

一般直接输入本地ip在手机端无法访问,需要去查看windows防火墙,把应用列表中apache选上!

cao_xinghua的专栏 657

MyTV-Android项目:手机端自定义直播源扫码添加功能解析

MyTV-Android项目:手机端自定义直播源扫码添加功能解析 在MyTV-Android项目中,用户经常需要将自定义的直播源添加到手机应用中。本文将详细介绍这一功能的实现原理和使用方法,帮助用户更好地理解和使用这一便捷功能。 功能原理 MyTV-Android应用通过内置的本地服务器实现了直播源的扫码添加功能。当应用运行时,会在本地启动一个Web服务器,监听10481端口。这个服务器专门用于处...

gitblog_07757的博客 854

一款牛X的手机端 SSH 工具

链接:https://cn-sec.com/archives/1944062.html工欲善其事必先利其器,我们在日常工作中需要登录服务器。在Pc端工具比较丰富,如Xshell等。而在手机端有没有好用的ssh连接工具呢?关于flutter_server_box一个 Flutter 项目,它提供图表来显示 Linux 服务器状态和管理服务器的工具。特征支持SSH终端和SFTP。Docker及进程管理...

关注微信公众号【开源Linux】,后台回复『10T』,领取10T学习资源大放送,涵盖Linux、虚拟化、容器、云计算、网络、Python、Go等书籍和视频 642

Tomcat服务器的搭建和测试(启动和关闭)

首先保证你是装过java或者安卓的开发环境,就是已经配置过jdk的情况下,进行如下设置就行,(JDK的环境变量配置网上很全,随便搜就能配置成功) 在Tomcat官网上下载一个版本解压后进行如下操作即可: Tomcat压缩包的目录结构: bin:存放启动和关闭Tomcat的脚本文件 conf:存放Tomcat服务器的各种配置文件 lib:存放Tomcat服务器的支

The blog of 优快云 in 杨天福 1万+

esp8266作为web服务器的实现

最近要在ESP8266和单片机之间实现网页控制

qq_40094299的博客 2726

Android与WEB服务器交互时,如何保证在同一个会话Session中通信

转自:http://hi.baidu.com/cuihenrychl/item/a08e18268a01461577272ce4 最近在开发项目的过程中,遇到android与web服务器要在同一session下通信的问题。 在解决问题前先回顾下Session与Cookie: Cookie和Session都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决HT

java8438的专栏 834

黑莓手机数据库编程

<br />有朋友问到如何在黑莓手机上进行数据库编程,这里列一个总结:<br /> <br />1。 黑莓手机内置了Sqllite的支持,如果是小型和比较轻量点的数据库应用,可以直接放置到手机上。<br />2。 黑莓手机提供了web service的支持,对于JSR172有很好的支持,也可以考虑用Ksoap,这个需要把它移植到黑莓手机,重新编译下就好,对于大型的比如mssql之类支持web service的数据库,这也是一种访问方式。<br />3。对于数据库的应用,也可以考虑采用web方式,基于java

salvatore_zhang的黑莓开发专栏 1301

Android WiFi文件共享实现

  本文介绍,在同一Wifi环境下,Android手机和PC实现文件共享功能的APP,APP我取名为 WiFi Share。 前言:通常,我们在手机和电脑之间传输文件,最先想到的就是通过USB数据线进行文件传输,这样在已经插上usb数据线的情况下还是很方便的。但是usb数据线不在,或电脑usb口都被暂用的情况下,就显得很着急了。所以,WiFi Share就派上用场,它不再需要到处找数据线,以下是...

york2017的博客 2916

让你的手机能够在线播放局域网中电脑上的视频

http://www.miui.com/thread-178624-1-1.html 发表于 2011-8-6 19:17:40|只看该作者|倒序浏览 1,电脑端WIN7系统 2,手机端和电脑在一个局域网内 3,安装VPLAYER0.99支持url输入打开视频(神马vplayer pro啊,vplayer捐赠版啊都是挂羊头卖狗肉的,不建议下载,下来也没用) 步骤: 1,在控

cs090506的专栏 7542

[这不是Windows Phone 7]FitnessTrackerPlus(健身)二.架构搭建

现在开始搭建服务器和手机端基本框架 /************************************************************************** 注意:代码在即将开始的第三章,会有所变动 为了进行真机调试,请将数据库连接权限自定义一个账户,不要使用电脑系统权限进行操作, ADO.NET数据模型连接语句也为之前自定义的账户,并且将ASP.N...

weixin_30633507的博客 127
上一篇: 给小白的Java EE生存指南(6) :Java 反射
下一篇: 流畅接口(Fluent Interface)
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值