php接口post提交方法 (改良版)
2015-12-01 16:47
696 查看
$postData = "reqType=2&caller=15088719619&called=15068722845"; $result = send_post("192.168.0.152","4569","http://192.168.0.152:4569",$postData); var_dump($result); function send_post($host,$port,$urlPage,$postData){ // echo str_pad(" ", 256); $errno = ''; $errstr = ''; $length = strlen($postData); $fp = fsockopen($host,$port,$errno,$errstr,120) or exit($errstr."--->".$errno); //构 造post请求的头 $header = "POST $urlPage HTTP/1.1\r\n"; $header .= "Host:".$host."\r\n"; $header .= "Referer:".$urlPage."\r\n"; $header .= "Content-Type:application/x-www-form-urlencoded\r\n"; $header .= "Content-Length:".$length."\r\n"; $header .= "Connection:Close\r\n\r\n"; //添加post的字符串 $header .= $postData."\r\n"; //发送post的数据 fputs($fp, $header); // $inheader = 1; $result = array(); //最终输出结果; $temp = ""; $flag = 0; $readLen = 128; while (!feof($fp)){ $line = fread($fp,$readLen); // 去除请求包的头只显示页面 的返回数据 (注意fgets fread($fp,1)最少2个字节起。) $temp .= $line; /* echo $line; my_flush(); if($inheader && ($line == "\n" || $line == "\r\n")) $inheader = 0; if($inheader==0){ $temp .= trim($line); } */ if(strlen($line)<$readLen){ break; } } fclose($fp); $result = formatResponeData($temp); return $result; } function formatResponeData($data){ $resultArr = explode("\r\n\r\n", $data); return trim($resultArr[1]); } function my_flush(){ ob_flush(); flush(); }
相关文章推荐
- php实现 sql 查找月,日 分组查询
- J2ee关于getattribute和getParaments
- 用PHP和JS分别实现隔行换色
- InputStreamReader和 OutputStreamWriter
- PHP中获取当前页面的完整URL
- php实现邮件发送
- PHP远程获取网页内容
- PHP 变量的声明、可变变量、引用变量
- php环境搭建
- 使用php将数组转为XML
- laravel 取sql语句
- PHP实现文件复制
- php 多选按钮写入数据库的方法
- tftp命令使用说明
- php无法上传大文件完美解决方案
- Ubuntu系统安装php开发环境
- PHP性能至一处小问题
- getPositionForSection与getSectionForPosition的用法(Listview分块显示)
- php中关于mysqli和mysql区别
- 修改tp-wr841n-v8的flash