请用php写出一个通用于get,post调用接口请求数据的安全方法
时间: 2023-03-21 09:02:07 浏览: 66
下面是一个通用于 GET 和 POST 请求的接口请求数据的安全方法的 PHP 代码示例:
```php
function request($url, $data = array(), $method = 'GET') {
$curl = curl_init();
$timeout = 30;
$headers = array(
'Content-Type: application/json',
'Accept: application/json'
);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
if ($method == 'POST') {
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
}
$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($httpCode == 200) {
return json_decode($result, true);
} else {
return false;
}
}
```
这个方法使用 curl 库来发送请求。它支持 GET 和 POST 方法,并允许您传递数据。它还设置了一些默认值来确保请求的安全性,例如设置了请求头的 content-type 和 accept 属性,关闭了 SSL 验证等等。
使用此方法时,您只需要传递要调用的接口的 URL、请求的数据(如果需要)和请求的方法(默认为 GET)即可。例如:
```php
$result = request('https://example.com/api/users', array('name' => 'John', 'email' => 'john@example.com'), 'POST');
```
这将向 https://example.com/api/users 发送一个 POST 请求,其中包含名为 John 和电子邮件地址为 john@example.com 的用户数据。请求成功时,该方法将返回 JSON 格式的响应数据。如果请求失败,则返回 false。