İçeriğe geç

Timeout ve long-polling

GET /numbers/sms/wait, GET /emails/get-email ve POST /captchas/resolve long-polling endpoint’leridir. İstek, sonuç hazır olana kadar açık kalır ve yanıt sonucun kendisidir.

Beklediğiniz şey zaten olmuşsa (siz sormadan önce gelmiş bir SMS ya da e-posta), yanıt anında döner.

Beklemeye razı olduğunuz en uzun süreyi milisaniye cinsinden X-Service-Timeout header’ında gönderin. Pozitif bir tam sayı olmalıdır; aksi halde 400 döner.

curl -G https://api.clearance.rest/emails/get-email \
-H "X-API-Key: $CLEARANCE_REST_API_KEY" \
-H "X-Service-Timeout: 45000" \
--data-urlencode "email_account=test@domain.com"

Her servisin ayrıca bir tavanı vardır; header bunu düşürebilir ama asla yükseltemez:

Endpoint Tavan
GET /numbers/sms/wait 5 dakika
GET /emails/get-email 5 dakika
POST /captchas/resolve 10 dakika

Header olmadan bekleme, tavana kadar sürer.

Süresi dolan bir bekleme HTTP hatası değildir. Yanıt 200’dür, bu yüzden gövdeye bakın:

{ "success": false, "error": "timeout" }

Captchas’ta gövde ayrıca iş bilgisini de taşır:

{ "jobId": "6f1c1a4e-2f0e-4c39-9d1b-3f7a7f8c2b10", "waitedMs": 45000, "error": "timeout" }

SDK’lar bunu sizin için tipli bir timeout hatasına çevirir. Bkz. SDK hataları.

Birçok HTTP istemcisinin kendi varsayılan timeout’u vardır, çoğu zaman 30 ya da 60 saniye. Sizinkini gönderdiğiniz X-Service-Timeout’un üstüne ayarlayın, yoksa istemci önce pes eder. SDK’lar, verdiğiniz timeout’a pay ekleyerek bunu otomatik yapar.

İstemciniz bağlantıyı koparırsa sunucu sizin adınıza beklemeyi bırakır. Captchas’ta bu yalnızca iptali destekleyen sağlayıcıları iptal eder; sağlayıcıda zaten ücreti ödenmiş bir çözüm orada yine de tamamlanabilir.