您的位置:首页 > 编程语言 > PHP开发

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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: