时时商务社区

标题: php实现模拟post请求用法实例 [打印本页]

作者: qz234    时间: 2018-2-14 05:44

            本文实例讲述了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="OST $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程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • php中模拟POST传递数据的两种方法分享
  • php模拟post行为代码总结(POST方式不是绝对安全)
  • php 模拟POST提交的2种方法详解
  • php 模拟post_验证页面的返回状态(实例讲解)
  • php curl模拟post请求小实例
  • php curl模拟post提交数据示例
  • PHP函数分享之curl方式取得数据、模拟登陆、POST数据
  • 使用PHP Socket 编程模拟Http post和get请求
  • php模拟post提交数据的方法
            




    欢迎光临 时时商务社区 (http://bbs.4435.cn/) Powered by Discuz! X3.2