function post($data, $action, $timeout = 30, $headers = []) {
$config = Config::load(APP_PATH . 'config.php');
$lang = empty(\think\Cookie::get('lang')) ? 'en' : \think\Cookie::get('lang');
$token = empty(\think\Session::get('token')) ? '' : \think\Session::get('token');
$header = ['Content-type: application/json;charset=UTF-8'];
if ($headers) {
foreach ($headers as $key => $val) {
$header[] = $key . ':' . $val;
}
}
$ip = get_client_ip();
$header[] = 'x_forwarded_for:' . $ip;
$header[] = 'client_ip:' . $ip;
$header[] = 'ip:' . $ip;
$header[] = 'lang:' . $lang;
$header[] = 'token:' . $token;
$formdata = json_encode($data);
$url = $config['url_domain'] . $action;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $formdata);
curl_setopt($ch, CURLOPT_TIMEOUT, (int) $timeout);
$response = curl_exec($ch);
if (curl_errno($ch)) {
\think\Log::write('Curl error: ' . curl_error($ch), LOG_ERR);
return [];
}
curl_close($ch);
return json_decode($response, true);
}
json-api
最新推荐文章于 2024-05-15 04:58:31 发布