solvethree API hataları: neleri düzeltmeli, ne zaman yeniden denemeli?
HTTP durumuyla başlayın. 401, API'nin kimlik bilgilerinizi reddettiği anlamına gelir; alınan bir görevin durumunun failed olması ise isteğin başarılı olduğu ancak çözüm işleminin başarısız olduğu anlamına gelir. Bunların çözümleri farklıdır.
Bu sayfada
Görev sonucunu okumadan önce HTTP hatasını giderin
Başarılı yanıtın içeriğini okumadan önce başarısız HTTP yanıtlarını işleyin. POST /v1/tasks için 201, yeni bir görev oluşturulduğu; 200 ise idempotent yeniden gönderimin mevcut görevi döndürdüğü anlamına gelir. Bu yanıtların hiçbiri çözüm işleminin tamamlandığı anlamına gelmez.
- 400 — geçersiz istek gövdesi
Gönderilen gövdeyi görev türünüz için belgelenen alanlar ve gereksinimlerle karşılaştırın.
Şunu deneyin: Yeniden göndermeden önce girdiyi düzeltin. Geçersiz bir gövdeyi değiştirmeden yeniden denemek sorunu çözmez. İsteği kontrol etmek için görev oluşturma sözleşmesini kullanın.
- 401 — geçersiz API anahtarı
İsteğin
Authorization: Bearerve ardından geçerli bir çalışma alanı API anahtarı içerdiğini kontrol edin.Şunu deneyin: Eksik anahtarı ekleyin veya reddedilen anahtarı düzeltin. Tarayıcı kodunda açığa çıkarmak yerine sunucuda tutun.
- 402 — yetersiz kredi
API anahtarıyla ilişkili çalışma alanının kredi bakiyesini kontrol edin.
Şunu deneyin: Yeniden denemeden önce o çalışma alanına kredi ekleyin. İlgisiz HTTP hatalarını veya görev hatalarını bakiye sorunu olarak değerlendirmeyin.
- 403 — etkin olmayan site profili
reCAPTCHA için hedef sitenin çalışma alanınızın kullanımına açık etkin bir profili olduğunu doğrulayın.
Şunu deneyin: Konsolda hedef siteyi yapılandırın ve profilin etkin olduğunu doğrulayın. Görevde ana makine adı ve eylem belirtmek bir profil oluşturmaz. Bu ağ geçidi yanıtı, hedef web sitesinin sizi engellediğine kanıt değildir.
- 409 — istek kimliği çakışması
Aynı
requestIddeğerinin daha önce farklı görev girdileriyle kullanılıp kullanılmadığını kontrol edin.Şunu deneyin: Özgün görevi kurtarmak için özgün girdileri kullanın. Farklı bir görev oluşturmayı amaçlıyorsanız ona yeni bir istek kimliği verin.
- 410 — saklanan sonucun süresi doldu
Saklanan sonucu artık tutulmayan tamamlanmış bir görevi almaya çalışıp çalışmadığınızı kontrol edin.
Şunu deneyin: Bu sonucu almaya çalışmayı bırakın. Hâlâ ihtiyacınız varsa yeni bir çözüm işlemi oluşturun. Bu durum, hedef token'ın veya çerezin ömrünü değil, API sonucunun saklanma süresini belirtir.
- 429 — hız sınırı uygulandı
Döndürülen gerçek
Retry-Afteryanıtını okuyun.Şunu deneyin: Yeniden denemeden önce belirtildiği şekilde bekleyin ve istek hızını azaltın. Hız sınırı uygulanırken aynı hızda sorgulamaya veya istek göndermeye devam etmeyin.
- 502 — üretim hizmeti kullanılamıyor
Hizmetin kullanılamamasını geçersiz girdiden veya yetersiz krediden ayırt edin.
Şunu deneyin: Daha sonra yeniden deneyin. Aynı oluşturma isteğini yeniden denerken istek kimliğini ve değiştirilmemiş görev girdilerini tekrar kullanın.
HTTP 503, üretim kapasitesinin kullanılamadığı anlamına gelir. Daha sonra yeniden deneyin; aynı oluşturma isteği için istek kimliğini ve değiştirilmemiş görev girdilerini tekrar kullanın.
Başarısız görev tamamlanmıştır: sorgulamayı durdurun
pendingveyasolving: mevcut görevi sorgulamaya devam edin; sırf hazır olmadığı için yerine yeni bir görev oluşturmayın.ready: sorgulamayı durdurun ve çözümü okuyun.failed: sorgulamayı durdurun veerrorCodeileerroralanlarını inceleyin.
{
"id": "example_login_001",
"status": "failed",
"errorCode": "site-unreachable",
"error": "target page did not respond"
}Burada site-unreachable, bir HTTP durumu değil, görev hata kodudur. Başka bir çözüm istemeden önce gönderilen hedef URL'yi ve sayfanın yanıt verip vermediğini kontrol edin. Daha fazla sorgu bu başarısız görevi yeniden başlatmaz; özgün istek kimliğiyle yeniden göndermek de yerine yeni bir görev başlatmak yerine mevcut görevi döndürür.
Oluşturma zaman aşımından sonra yeniden göndermeden önce kurtarın
Bağlantı zaman aşımı, görev oluşturmanın başarısız olduğunu kanıtlamaz. Aynı mantıksal görevi güvenle kurtarabilmek için ilk oluşturma denemenizden önce isteğe bağlı requestId alanını kullanın. 1–64 ASCII harfi, rakam, alt çizgi veya kısa çizgi içermelidir.
- 1.
Görev kimliğiniz varsa görevi alın
GET /v1/tasks/:idkullanın ve görev durumunu kontrol etmeden önce HTTP yanıtını işleyin. - 2.
Oluşturma yanıtı kaybolduysa özgün isteği yeniden gönderin
Aynı görev girdilerini aynı istek kimliğiyle gönderin. İdempotent yeniden gönderim, görev oluşturulmuşsa mevcut görevi döndürür. Bu kimlik altında girdileri değiştirmeyin.
- 3.
Yalnızca başka bir çözüm işlemi başlatmak istediğinizde yerine yeni bir görev oluşturun
Yeni bir istek kimliği, önceki isteğin kurtarılmasını değil, yeni bir işi temsil eder. Bunu bilinçli kullanın; örneğin nihai bir hatayı araştırıp yeniden denemeye karar verdikten sonra.
Yeniden gönderim işlemleri için istek kimliğiyle kurtarma bölümüne; oluşturma başarılı olduğu hâlde görev hâlâ çalışıyorsa sorgulama ve zaman aşımları bölümüne bakın.
Kaynaklar ve API referansı
Hâlâ çözüme ulaşamadınız mı?
Görev kimliğinizi ve aldığınız hatayı destek ekibine gönderin.