php实现模拟post请求用法实例
本文实例讲述了php实现模拟post请求的方法。分享给大家供大家参考。具体如下:
classRequest{ publicstaticfunctionpost($url,$post_data='',$timeout=5){//curl $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,1); if($post_data!=''){ curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data); } curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); curl_setopt($ch,CURLOPT_HEADER,false); $file_contents=curl_exec($ch); curl_close($ch); return$file_contents; } publicstaticfunctionpost2($url,$data=array()){//file_get_content $postdata=http_build_query( $data ); $opts=array('http'=> array( 'method'=>'POST', 'header'=>'Content-type:application/x-www-form-urlencoded', 'content'=>$postdata ) ); $context=stream_context_create($opts); $result=file_get_contents($url,false,$context); return$result; } publicstaticfunctionpost3($host,$path,$query,$others=''){//fsocket $post="POST$pathHTTP/1.1\r\nHost:$host\r\n"; $post.="Content-type:application/x-www-form-"; $post.="urlencoded\r\n${others}"; $post.="User-Agent:Mozilla4.0\r\nContent-length:"; $post.=strlen($query)."\r\nConnection:close\r\n\r\n$query"; $h=fsockopen($host,80); fwrite($h,$post); for($a=0,$r='';!$a;){ $b=fread($h,8192); $r.=$b; $a=(($b=='')?1:0); } fclose($h); return$r; } } $url='http://******/con/Inter.php'; $data=Request::post($url,array('api'=>'tag_list')); $data2=Request::post2($url,array('api'=>'tag_list')); echo$data;
希望本文所述对大家的php程序设计有所帮助。