文章的开头,先感谢,陪伴我一个深夜,一起码字,测试数据交互的小伙伴—— 安安
来说正题:
这个问题,之前还真没有碰过。
先前做APP,是很简单的demo,也没有考虑太复杂和深入的问题,总而言之,那时,做的不够完善和周到昨晚,跟小伙伴安安,一起配合做登录接口的握手。我是服务器端,基于php,他是客户端,iOS端。他直接使用了流数据发送了json过来,而我没意识到流数据跟普通的get/post请求的差别。所以,卡了这个位置,一直握手失败。(握手是指客户端与服务器端数据相互传输)。找了很多博客文档,看了。有不少朋友也做过这样的知识点的分享,确实给力。按照辅助,我实现了php接收流数据。答案也并不难,下面我贴一下代码/**
* 转换为流
* @author 峰哥修bug
* @since 2016-05-05 00:21:39
* @link linxue.net
* @author mrlindaxue@sina.com
*/
function getStream(){
$arr = [];
$stream = file_get_contents('php://input');
if( !empty($stream) ){
$arr = json_decode($stream, true);
}
return $arr;
}
今天我又琢磨着,能不能我在web中直接测试流数据。php可以接收流数据,那么发送呢?所以问题来了,怎么样实现php发送流数据的需求呢代码如下,大家尝试去玩玩,并不难。我贴出来,只怕自己忘记了/**
* 发送数据流
* @author 峰哥修bug
* @since 2016-05-06 23:21:39
* @link linxue.net
* @author mrlindaxue@sina.com
*/
function sendStream( $arr , $type =false )
{
$url = base_url('api.php');
$content = json_encode($arr);
$opts = [
'http' => array(
'method' => 'POST',
'header' => 'content-type:application/x-www-form-urlencoded',
'content' => $content
)
];
$context = stream_context_create($opts);
$response = file_get_contents($url, false, $context);
// print_mine($response);
#返回数据
if( !$type ){
return $result = json_decode($response, true);
}else{
return $response;
}
}
我简单的封装了两个函数,大家可以拿去使用。具体的例子,我家阵真系磨时间,后续如果得闲再补上~~~(大雪这么说,就别期待了) ++++++