solvethree API hataları: neleri düzeltmeli, ne zaman yeniden denemeli?

solvethree tarafından4 dk okuma

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: Bearer ve 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ı requestId değ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-After yanı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

  • pending veya solving: 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 ve errorCode ile error alanlarını inceleyin.
Örnek yanıt · nihai başarısızlık
{
  "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. 1.

    Görev kimliğiniz varsa görevi alın

    GET /v1/tasks/:id kullanın ve görev durumunu kontrol etmeden önce HTTP yanıtını işleyin.

  2. 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. 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.

Hâlâ çözüme ulaşamadınız mı?

Görev kimliğinizi ve aldığınız hatayı destek ekibine gönderin.

Destekle iletişime geçin
solvethree API hataları: neleri düzeltmeli, ne zaman yeniden denemeli? · solvethree