php实现模拟post请求用法实例
author:一佰互联 2019-04-27   click:187

本文实例讲述了php实现模拟post请求的方法。分享给大家供大家参考。具体如下:

class Request{ public static function post($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; }  public static function post2($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; }  public static function post3($host,$path,$query,$others=""){//fsocket  $post="POST $path HTTP/1.1Host: $host";  $post.="Content-type: application/x-www-form-";  $post.="urlencoded${others}";  $post.="User-Agent: Mozilla 4.0Content-length: ";  $post.=strlen($query)."Connection: close$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程序设计有所帮助。