封装请求方法
function do_post($url, $params, $headers)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
拿到参数
组合数据,发送请求
//请求地址
$url = "http://10.10.10.1/reload_Sui.asp";
//如果是post请求,这里填参数
$params = array();
//请求头
$headers = array(
"Content-Type: text/html",
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Authorization: Basic YWRtaW46OTQxNTU2"
);
//json序列化
$params = json_encode($params, JSON_FORCE_OBJECT);
//调用请求方法
$result = do_post($url, $params, $headers);
echo $result;
不同的路由器验证方式不一样,我这个路由器验证直接是放在请求头里的,就是Authorization这个参数,还有的是放在post参数里,那就需要往$params里填。
呼应标题:这个路由器是相对简单的,我家还有一个迅捷路由器每次post的密文都会变,看JS代码是经过了2次加密,我只找到了第二次加密的算法,第一次加密用的随机数组找不到什么时候生成的,放弃了。。。