搜索
查看: 5390|回复: 0

利用PHP 伪造 POST 和 GET 请求

[复制链接]

105

主题

51

回帖

298

积分

中级会员

积分
298
发表于 2020-12-12 17:57:10 来自手机 | 显示全部楼层 |阅读模式 来自 甘肃
在 PHP 中想要构造类似 GET 和 POST 请求,在一些 APP 或者等后端功能开发中是有这种需求。

在 PHP 语言当中有 file_get_content () 函数和 curl 的支持。
在 PHP>5.3 的版本中默认两者都是开启的。

GET 请求实现:
[pre]
<?php
function httpGET($target_url, $get_data = array()){
    $result = @file_get_content($target_url.'/?'.http_build_query($get_data));
    return $result;
}


/*
*    方法2
*/
function httpGET2($target_url, $get_data = array()){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $target_url.'/?'.http_build_query($get_data));
    curl_setopt($curl, CURLOPT_HEADER, 1);
     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
     curl_close($curl);
    return $data;
}
[/pre]
?>
POST 请求实现
POST 请求没法儿使用 file_get_content () 函数来实现,所以只有使用 curl 方法来实现
[pre]
<?php

function httpPOST($url , $post_data = array()){
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_HEADER, 1);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_POST, 1);
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));
  $response = curl_exec($curl);
  curl_close($curl);
  return $response;
}
?>
[/pre]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表