详析php发送post请求的方法
2019-10-09
发布者:陈悦东
导读你知道php怎么发送post请求吗?对于php发送post请求的方法相信是很多人都不知道的,那么今天我们就带着这个问题一起去看看小编为大家详析php发送post请求的方法。方法一:function send_post($url, $post_data) {??$
你知道php怎么发送post请求吗?对于php发送post请求的方法相信是很多人都不知道的,那么今天我们就带着这个问题一起去看看小编为大家详析php发送post请求的方法。
方法一:
function send_post($url, $post_data) { ??$postdata = http_build_query($post_data); ??$options = array( ????'http' => array( ??????'method' => 'POST', ??????'header' => 'Content-type:application/x-www-form-urlencoded', ??????'content' => $postdata, ??????'timeout' => 15 * 60 // 超时时间(单位:s) ????) ??); ??$context = stream_context_create($options); ??$result = file_get_contents($url, false, $context); ??return $result; } //使用方法 $post_data = array( ??'username' => 'stclair2201', ??'password' => 'handan' ); send_post('http://www.jb51.net', $post_data);
方法二:Socket版本
<?php function request_by_socket($remote_server,$remote_path,$post_string,$port = 80,$timeout = 30) { ??$socket = fsockopen($remote_server, $port, $errno, $errstr, $timeout); ??if (!$socket) die("$errstr($errno)"); ??fwrite($socket, "POST $remote_path HTTP/1.0"); ??fwrite($socket, "User-Agent: Socket Example"); ??fwrite($socket, "HOST: $remote_server"); ??fwrite($socket, "Content-type: application/x-www-form-urlencoded"); ??fwrite($socket, "Content-length: " . (strlen($post_string) + 8) . ""); ??fwrite($socket, "Accept:* function request_by_curl($remote_server, $post_string) { ??$ch = curl_init(); ??curl_setopt($ch, CURLOPT_URL, $remote_server); ??curl_setopt($ch, CURLOPT_POSTFIELDS, 'mypost=' . $post_string); ??curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); ??curl_setopt($ch, CURLOPT_USERAGENT, "jb51.net's CURL Example beta"); ??$data = curl_exec($ch); ??curl_close($ch); ??return $data; } ?>
?
下面是其他网友的方法:
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){//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.1rnHost: $hostrn"; $post.="Content-type: application/x-www-form-"; $post.="urlencodedrn${others}"; $post.="User-Agent: Mozilla 4.0rnContent-length: "; $post.=strlen($query)."rnConnection: closernrn$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; } }
本篇文章里小编为大家详析php发送post请求的方法,大家在看完后可以根据需要选择适合自己的即可。更多详细内容就请关注我们爱站技术频道吧!
原文链接:https://js.aizhan.com/develop/php/9383.html
如有疑问请与原作者联系
免责声明:本文章由会员“陈悦东”发布如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系
上一篇:php如何获取文件大小
下一篇:网站有icp备案就安全吗