内容目录
因为需要获取微信的accesstoken 但是又要限制ip 服务器出口ip太多不好控制 于是采用中转服务器 中转服务器上使用php进行请求转发 也就相当于服务器直接向目标服务器发送请求 目标服务器的ip白名单设置为中转服务器即可 php请求转发器的代码如下
<?php header("Content-type:text/html;charset=utf-8"); //获取输入json $data= file_get_contents("php://input"); function parse_url_param($str) { $tmp_name=explode('?', $str); $data = array(); $parameter = explode('&', end($tmp_name)); foreach ($parameter as $val) { $tmp = explode('=', $val); $data[$tmp[0]] = $tmp[1]; } return $data; } $result=$_SERVER["QUERY_STRING"]; $result=parse_url_param($result); //发送数据 $url=urldecode($result['url']); //生成文件 $file = 'logurl.txt';//要写入文件的文件名(可以是任意文件名),如果文件不存在,将会创建一个 if($f = file_put_contents($file,$url."\r\n",FILE_APPEND)){// 这个函数支持版本(PHP 5) } $ch = curl_init($url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: '.strlen($data)) ); $result = curl_exec($ch); curl_close($ch); //输出返回结果 print_r($result) ?>
路径如http://localhost/test.php?url=XXXX形式 xxxx使用urlencode转码过 返回json数据就是url请求的数据