A hálózati problémák miatt az API-kérések sikertelenek lehetnek. Így kezeld az időtúllépéseket és a kapcsolódási gondokat kulturáltan.
Megfelelő időtúllépések beállítása
Mindig állíts be időtúllépést, hogy elkerüld a „beragadó” kéréseket:
// JavaScript a fetch-sel
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 30000); // 30s
try {
const response = await fetch('https://api.cathopic.com/resources', {
method: 'POST',
headers: {
'x-api-key': apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify({ query: 'Jesus' }),
signal: controller.signal
});
clearTimeout(timeout);
return await response.json();
} catch (error) {
clearTimeout(timeout);
if (error.name === 'AbortError') {
console.error('A kérés 30s után időtúllépett');
} else {
console.error('Hálózati hiba:', error);
}
throw error;
}
// Python a requests-szel
import requests
from requests.exceptions import Timeout, RequestException
try:
response = requests.post(
'https://api.cathopic.com/resources',
headers={'x-api-key': api_key},
json={'query': 'Jesus'},
timeout=30 # 30 másodperc
)
return response.json()
except Timeout:
print('A kérés 30s után időtúllépett')
raise
except RequestException as e:
print(f'Hálózati hiba: {e}')
raise
Gyakori hálózati hibák
Kapcsolódási időtúllépés:
Nem sikerül kapcsolatot létesíteni a szerverrel
Leggyakrabban hálózati vagy tűzfal-probléma
Ellenőrizd az internetkapcsolatot
Ellenőrizd, hogy a tűzfal engedi-e a HTTPS-t a következőhöz: api.cathopic.com
Olvasási időtúllépés:
A kapcsolat létrejött, de nincs válasz
A szerver lehet lassú vagy túlterhelt
Növeld az időtúllépést, vagy próbáld újra később
DNS-feloldási hiba:
Nem sikerül feloldani az api.cathopic.com címet
DNS-kiszolgáló probléma
Próbáld újra, vagy ellenőrizd a DNS-beállításokat
Újrapróbálkozás fokozatos várakozással (backoff)
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
try {
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 30000);
const response = await fetch(url, {
...options,
signal: controller.signal
});
clearTimeout(timeout);
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
return await response.json();
} catch (error) {
const isLastAttempt = attempt === maxRetries - 1;
if (isLastAttempt) {
console.error(`Az összes ${maxRetries} próbálkozás sikertelen volt`);
throw error;
}
const waitTime = Math.pow(2, attempt) * 1000;
console.log(`A(z) ${attempt + 1}. próbálkozás sikertelen. Újrapróbálás ${waitTime} ms múlva...`);
await new Promise(resolve => setTimeout(resolve, waitTime));
}
}
}
Ajánlott időtúllépési értékek
Kapcsolódási időtúllépés: 10 másodperc
Olvasási időtúllépés: 30 másodperc
/resources keresés: 30 másodperc
/confirm licensing: 30 másodperc
Hálózati problémák hibakeresése
A kapcsolat teszteléséhez használd a curl-t:
# Alap kapcsolat tesztelése
curl -v https://api.cathopic.com/resources
# Teszt időtúllépéssel
curl --max-time 30 -X POST https://api.cathopic.com/resources \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "test"}'
Ellenőrizd:
✓ Az api.cathopic.com feloldása (DNS)
✓ Az SSL/TLS kapcsolat sikeres
✓ HTTP válasz érkezik
✓ A válaszidő ésszerű (<5s általában)
Ha a problémák továbbra is fennállnak, vedd fel a kapcsolatot a támogatással a hálózati diagnosztikai részletekkel.