Board logo

标题: 用php模拟post来提交数据 [打印本页]

作者: xiexie    时间: 2008-10-22 22:48     标题: 用php模拟post来提交数据

利用php的socket编程来直接给接口发送数据来模拟post的操作。 <?PHP/************************************************************************ Name:POST测试程序Vesion:1.0Date:2004-08-05************************************************************************* /$flag=0; //要post的数据 $argv=array( 'var1'=>'abc', 'var2'=>'你好吗'); //构造要post的字符串 foreach($argvas$key=>$value){ if($flag!=0){ $params.="&"; $flag=1; } $params.=$key."=";$params.=urlencode($value); $flag=1; } $length=strlen($params); //创建socket连接 $fp=fsockopen("127.0.0.1",80,$errno,$errstr,10)orexit($errstr."--->".$errno); //构造post请求的头 $header="POST/mobile/try.phpHTTP/1.1\r\n"; $header.="Host:127.0.0.1\r\n"; $header.="Referer:/mobile/sendpost.php\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.=$params."\r\n"; //发送post的数据 fputs($fp,$header); $inheader=1; while(!feof($fp)){ $line=fgets($fp,1024);//去除请求包的头只显示页面的返回数据 if($inheader&&($line=="\n"||$line=="\r\n")){ $inheader=0; } if($inheader==0){ echo$line; } } fclose($fp); ?> 还可以使用php类HttpClient SnoopyorhttpClient [ 本帖最后由 xiexie 于 2008-10-22 22:52 编辑 ]




欢迎光临 PHP开发笔记 (http://phpvi.com/) Powered by Discuz! 6.1.0