首页 > 开发 > PHP > 正文

php实现模拟post请求用法实例

2024-05-04 22:35:50
字体:
来源:转载
供稿:网友

本文实例讲述了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.1/r/nHost: $host/r/n";  $post.="Content-type: application/x-www-form-";  $post.="urlencoded/r/n${others}";  $post.="User-Agent: Mozilla 4.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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表