首页 > 开发 > PHP > 正文

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

2024-05-04 23:37:43
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php实现模拟post请求用法,分析了php模拟post请求的三种常见用法,具有一定参考借鉴价值,需要的朋友可以参考下

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

 

 
  1. class Request{ 
  2. public static function post($url, $post_data = '', $timeout = 5){//curl 
  3. $ch = curl_init();  
  4. curl_setopt ($ch, CURLOPT_URL, $url); 
  5. curl_setopt ($ch, CURLOPT_POST, 1); 
  6. if($post_data != ''){ 
  7. curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
  8. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);  
  9. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
  10. curl_setopt($ch, CURLOPT_HEADER, false); 
  11. $file_contents = curl_exec($ch); 
  12. curl_close($ch); 
  13. return $file_contents; 
  14. }  
  15. public static function post2($url, $data=array()){//file_get_content 
  16. $postdata = http_build_query( 
  17. $data 
  18. );  
  19. $opts = array('http' => 
  20. array( 
  21. 'method' => 'POST'
  22. 'header' => 'Content-type: application/x-www-form-urlencoded'
  23. 'content' => $postdata 
  24. );  
  25. $context = stream_context_create($opts); 
  26. $result = file_get_contents($url, false, $context);  
  27. return $result; 
  28. }  
  29. public static function post3($host,$path,$query,$others=''){//fsocket 
  30. $post="POST $path HTTP/1.1/r/nHost: $host/r/n"
  31. $post.="Content-type: application/x-www-form-"
  32. $post.="urlencoded/r/n${others}"
  33. $post.="User-Agent: Mozilla 4.0/r/nContent-length: "
  34. $post.=strlen($query)."/r/nConnection: close/r/n/r/n$query"
  35. $h=fsockopen($host,80); 
  36. fwrite($h,$post); 
  37. for($a=0,$r='';!$a;){ 
  38. $b=fread($h,8192); 
  39. $r.=$b; 
  40. $a=(($b=='')?1:0); 
  41. fclose($h); 
  42. return $r; 
  43. $url='http://******/con/Inter.php'
  44. $data=Request::post($url,array('api'=>'tag_list')); 
  45. $data2=Request::post2($url,array('api'=>'tag_list')); 
  46. echo $data; 

希望本文所述对大家的php程序设计有所帮助。

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