Anonymous
Ошибка: Ошибка приема: сброс соединения узлом
Сообщение
Anonymous » 11 апр 2024, 08:19
Это код:
Код: Выделить всё
function getCURL($url, $decode = '', $data = '', $headers = '', $timeout='') {
global $_SERVER;
$ch = curl_init();
if($timeout){
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0');
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
if(is_array($data)){
curl_setopt($ch, CURLOPT_POST, count($data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
if(is_array($headers)){
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
$response = curl_exec($ch);
if ($response === false) {
echo 'Error: ' . curl_error($ch);
} else {
$response = ($decode == true)? json_decode($response,true) : $response;
if($decode == true){ $response['httpcode'] = curl_getinfo($ch, CURLINFO_HTTP_CODE); }
}
curl_close($ch);
return $response;
}
$token = substr(md5(time().$_SESSION['auth_user']['username']),0,25);
// Format API Link
$alias = 'ADR'.randHash(12);
$long_url = "{$urlweb}/shortlinks/{$token}";
$api_token = "b644192e44dded8871e867747698bea4d2ce6b8e";
$api_url = str_replace('?api={apikey}&url={url}', '?api={apikey}&alias={alias}&url={url}', $sldata[$shortlinkname]['apilink']);
$api_url = str_replace(array('{apikey}', '{url}', '{alias}'), array($sldata[$shortlinkname]['apitoken'], $long_url, $alias), $api_url);
// Get Shortlink
$shortlink = getCURL($api_url);
$shortlink = (strstr($shortlink,'":"'))? current(preg_grep('~^http~',json_decode($shortlink,true))) : trim($shortlink);
if(!strpos($shortlink, 'api/') && !strpos($shortlink, 'api.php') && filter_var($shortlink, FILTER_VALIDATE_URL)){
$_SESSION['auth_user']['sl']['link_id'] = $shortlinkname;
$_SESSION['auth_user']['sl']['token'] = $token;
$_SESSION['auth_user']['sl']['link'] = preg_replace("/\s\s+/", " ", $shortlink);
$_SESSION['auth_user']['sl']['time'] = time();
header("Location: $shortlink");
exit;
}
Это возвращает ошибку: Ошибка: Ошибка приема: сброс соединения по одноранговому узлу
Веб-сайт, на котором я запрашиваю ответ, – https, это даст мне json, где у этого json есть http-ссылка, я не знаю, влияет ли это на нее, у меня это работает с другими ссылками, но с этой он возвращает это.
Я используйте AutoSSL
Подробнее здесь:
https://stackoverflow.com/questions/783 ... et-by-peer
1712812786
Anonymous
Это код: [code]function getCURL($url, $decode = '', $data = '', $headers = '', $timeout='') { global $_SERVER; $ch = curl_init(); if($timeout){ curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0'); curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); if(is_array($data)){ curl_setopt($ch, CURLOPT_POST, count($data)); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } if(is_array($headers)){ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } $response = curl_exec($ch); if ($response === false) { echo 'Error: ' . curl_error($ch); } else { $response = ($decode == true)? json_decode($response,true) : $response; if($decode == true){ $response['httpcode'] = curl_getinfo($ch, CURLINFO_HTTP_CODE); } } curl_close($ch); return $response; } $token = substr(md5(time().$_SESSION['auth_user']['username']),0,25); // Format API Link $alias = 'ADR'.randHash(12); $long_url = "{$urlweb}/shortlinks/{$token}"; $api_token = "b644192e44dded8871e867747698bea4d2ce6b8e"; $api_url = str_replace('?api={apikey}&url={url}', '?api={apikey}&alias={alias}&url={url}', $sldata[$shortlinkname]['apilink']); $api_url = str_replace(array('{apikey}', '{url}', '{alias}'), array($sldata[$shortlinkname]['apitoken'], $long_url, $alias), $api_url); // Get Shortlink $shortlink = getCURL($api_url); $shortlink = (strstr($shortlink,'":"'))? current(preg_grep('~^http~',json_decode($shortlink,true))) : trim($shortlink); if(!strpos($shortlink, 'api/') && !strpos($shortlink, 'api.php') && filter_var($shortlink, FILTER_VALIDATE_URL)){ $_SESSION['auth_user']['sl']['link_id'] = $shortlinkname; $_SESSION['auth_user']['sl']['token'] = $token; $_SESSION['auth_user']['sl']['link'] = preg_replace("/\s\s+/", " ", $shortlink); $_SESSION['auth_user']['sl']['time'] = time(); header("Location: $shortlink"); exit; } [/code] Это возвращает ошибку: Ошибка: Ошибка приема: сброс соединения по одноранговому узлу Веб-сайт, на котором я запрашиваю ответ, – https, это даст мне json, где у этого json есть http-ссылка, я не знаю, влияет ли это на нее, у меня это работает с другими ссылками, но с этой он возвращает это. Я используйте AutoSSL Подробнее здесь: [url]https://stackoverflow.com/questions/78308318/error-recv-failure-connection-reset-by-peer[/url]