php发送post请求的几种方法

第一种方法:

<?php
/**
 * 发送post请求
 * @param string $url 请求地址
 * @param array $post_data post键值对数据
 * @return string
 */
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' => 'makalo',
    'password' => 'makelochen'
);
echo send_post('http://localhost:8080/test.php', $post_data);*/
?>

第二种方法:

 public static function curl_post($url, $data)
 {
     //创建一个新的CURL资源赋给变量$ch
     $ch = curl_init();

     if(class_exists('./CURLFile')){//php5.5跟php5.6中的CURLOPT_SAFE_UPLOAD的默认值不同
		curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
	  }else{
		if(defined('CURLOPT_SAFE_UPLOAD')){
		  // curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
		}
	   }
        //设置要访问的url地址
        curl_setopt($ch, CURLOPT_URL, $url);
        //设置获取的内容但不输出
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        // 发送一个post的请求
        curl_setopt($ch, CURLOPT_POST, 1);
        // post提交的数据包
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        //执行操作
        $output = curl_exec($ch);
        //关闭curl
        curl_close($ch);
        //返回数据
        return $output;
      }


—————————————————————————————————————

亲爱的用户,您好!如果您喜欢这个网站,欢迎赞助我,您们的支持是我的动力。

赞赏款用于服务器、文章等网站的固定支出。欢迎大家支持,谢谢!

51cb4e9a9397260f1f774ee07de0b77.jpg