Android与PHP服务器交互情况(Volley篇)

之前从未接触过安卓和PHP服务器交互,无奈最近有一个项目必须要求和PHP登录服务器进行交互。

简单说来,我们所需要的就是POST数据给服务器,接收服务器返回的数据,这里我们不需要担心GET,只需要用一个JsonResponse对象来接收数据就行了。

首先,需要确定服务器接收的数据类型,起初我使用的一直是JsonObject,给其中添加key和value对,结果发现返回始终是failed,后来才知道应该添加form-data.在这里附上一个stackoverflow的链接:http://stackoverflow.com/questions/2938502/sending-post-data-in-android,其中old answer能解决我们的问题。

然而Google在Android 6.0以上移除了Apache HTTP Client,换言之,这个方法不兼容所有。

问题来了,如果我们需要兼容Android 6.0以上怎么办呢?

观察代码可以发现,BasicNameValuePair在安卓可以找到替代品,那就是Pair<String, String>,确实管用,不过UrlEncodedFormEntiy同样属于Apache HTTP Client,这样我们很难找到一个两全其美的办法来解决这个问题。


最终我的解决办法是,使用Volley来解决问题,先附上官方链接:https://developer.android.com/training/volley/index.html

Volley的通用性很好,同时针对不同的需求诸如Form-data所需要的key-value String pair还提供JsonObject的解决办法,这样我们就可以同时解决两方面的问题。


Android Volley的安装流程:

https://www.simplifiedcoding.net/android-volley-tutorial-to-get-json-from-server/


最后是一个Android Volley对于用户登录问题的一个小Demo:

https://www.simplifiedcoding.net/android-volley-post-request-tutorial/

需要注意的是,直接运行会出问题,因为StringRequest可能会出问题,自动调用GET时候使用的StringResquest,由于这次我们使用的是POST,所以可以将GET的部分注释掉。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值