1.PHP发送post请求,携带body数据
# url,请求路径,postdata 请求body参数,注意是json格式
public static function btnPost($url,$postdata)
{
# 初始化一个curl会话
$ch = curl_init();
# 启用时会发送一个常规的POST请求
curl_setopt($ch, CURLOPT_POST, 1);
# 需要获取的URL地址
curl_setopt($ch, CURLOPT_URL, $url);
# 全部数据使用HTTP协议中的"POST"操作来发送。
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
# 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
# 一个用来设置HTTP请求头字段的数组
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
# 设置编码格式
'Content-Type: application/json;charset=utf-8',
'Content-Length: ' . strlen($postdata)
)
);
# curl_exec 执行一个cURL会话。
$response = curl_exec($ch);
# 关闭一个cURL会话
curl_close($ch);
return $response;
}
2.PHP发送get请求
public static function btnGet($url)
{
# 初始化一个curl会话
$ch = curl_init();
# 判断是否是https
if (stripos($url, "https://") !== false) {
# 禁用后cURL将终止从服务端进行验证
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
# 使用的SSL版本(2 或 3)
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
}
# 设置请求地址
curl_setopt($ch, CURLOPT_URL, $url);
# 在启用CURLOPT_RETURNTRANSFER的时候,返回原生的(Raw)输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
# 执行这个请求
$output = curl_exec($ch);
# 关闭这个请求
curl_close($ch);
return $output;
}
3.file_get_contents结果处理
$result = file_get_contents($url);
$result = ltrim($result,"\XEF\XBB\XBF");
$result = json_decode($result,true);