安卓客户端与PHP后台通信
来源:互联网 发布:淘宝ued团队博客 编辑:程序博客网 时间:2024/05/14 17:14
安卓端通过http协议的post方式访问服务器php后台,并传送数据过来,数据格式是key1=value1&key2=value2·····的形式,安卓端代码形式:
public static String doPost(String url, Map<String, String> params) { String response = null; HttpClient client = new HttpClient(); HttpMethod method = new PostMethod(url); for (Iterator it = params.entrySet().iterator(); it.hasNext();) { } //设置Http Post数据 if (params != null) { HttpMethodParams p = new HttpMethodParams(); for (Map.Entry<String, String> entry : params.entrySet()) { p.setParameter(entry.getKey(), entry.getValue()); } method.setParams(p); } try { client.executeMethod(method); if (method.getStatusCode() == HttpStatus.SC_OK) { response = method.getResponseBodyAsString(); } } catch (IOException e) { log.error("执行HTTP Post请求" + url + "时,发生异常!", e); } finally { method.releaseConnection(); } return response; }
服务器端PHP通过$_POST
方式确取不到传递过来的值,$_POST
用来获取通信数据,有时候会出现状况,自己就遇到了,调试了很久,打印出$_SERVER
,发现可以获取到http协议传送的所有信息,在数据流里找到了HTTP_DATA元素值就是客户端POST的原生数据,PHP版本5.6之前,有一个方法$HTTP_RAW_POST_DATA
可以获取POST方式的原生数据,但是5.6版本就已经弃用了这个方法,改为了file_get_contents("php://input")
来代替使用$HTTP_RAW_POST_DATA
,因为$HTTP_RAW_POST_DATA
还需要特殊的php.ini配置,另外php://input还可以在未申明enctype=”multipart/form-data”的情况下使用。5.6版本前也可以用php://input方法,此方法为只读形式,5.6以前版本只能读取一次。因此重新采用了一下方式来重读数据:
if(empty($_POST)){ $str = file_get_contents("php://input"); parse_str($str,$arraypush); file_put_contents('input.txt',$str);}else{ $arraypush = $_POST; file_put_contents('input.txt',json_encode($arraypush));}
使用以上方法成功实现了与客户端的通信和数据双向传输,作为一个新手,对$_POST为什么不能正常获取数据还是不理解,如果有大神路过看见,还望能指点一二。
0 0
- 安卓客户端与PHP后台通信
- 安卓APP客户端与服务器通信
- Unity客户端与后台通信
- php后台与客户端交互
- 安卓开发中服务器与客户端的通信
- 安卓客户端与服务器端的简单通信
- iOS客户端 与JAVA 后台http通信
- 移动客户端与后台通信方式三
- 安卓TCP通信程序客户端设计
- php服务端与android客户端socket通信
- php服务端与android客户端socket通信
- php服务端与android客户端socket通信
- PHP客户端与C#服务器端 Socket通信
- php服务端与android客户端socket通信
- 【源码】c#编写的安卓客户端与Windows服务器程序进行网络通信
- 【源码】c#编写的安卓客户端与Windows服务器程序进行网络通信
- 基于servlet的服务端与安卓客户端的通信(文本)
- 【源码】c#编写的安卓客户端与Windows服务器程序进行网络通信
- Homebrew是啥
- 多核处理器
- 计时器(销毁后的时间也计算)
- 一次服务器CPU占用率高的定位分析
- HTML5 Placeholder
- 安卓客户端与PHP后台通信
- java中的equals方法+hashCode方法
- Eclipse 导入项目乱码问题
- 常规功能和模块自定义系统 (cfcmms)—025开发日志(创建iconCls的field)
- aidl
- 乡村爱情故事8 下载地址
- python 遍历文件夹子文件夹,批量生成txt
- OC-045.NSSet类和NSMutableSet类
- JavaScript基础——事件