private GReCaptchaYanıtı YanıtSonucunuParçala(string yanıtString) { var sonuç = new GReCaptchaYanıtı(); if (_sürüm == ReCaptchaSürümü.Sürüm1) { var sonuçParçası = yanıtString.Split('\n'); sonuç.Uygun = sonuçParçası.Contains("true"); if (!sonuç.Uygun) { sonuç.HataKodları.AddRange(sonuçParçası.Where(r => !r.Equals("false", StringComparison.InvariantCultureIgnoreCase))); } } else if (_sürüm == ReCaptchaSürümü.Sürüm2) { var sonuçParçası = JObject.Parse(yanıtString); sonuç.Uygun = sonuçParçası.Value <bool>("success"); if (sonuçParçası.Value <JToken>("error-codes") != null && sonuçParçası.Value <JToken>("error-codes").Values <string>().Any()) { sonuç.HataKodları = sonuçParçası.Value <JToken>("error-codes").Values <string>().ToList(); } } return(sonuç); }
public GReCaptchaYanıtı Doğrula() { GReCaptchaYanıtı sonuç = null; var httpClient = new HttpClient(); var requestUri = string.Empty; switch (_sürüm) { case ReCaptchaSürümü.Sürüm2: requestUri = string.Format(RECAPTCHA_DOĞRULAMA_URL_SURUM2, SecretKey, Response, RemoteIp); break; default: requestUri = string.Format(RECAPTCHA_DOĞRULAMA_URL_SURUM1, SecretKey, Response, RemoteIp, Challenge); break; } try { var görevSonucu = httpClient.GetAsync(requestUri); görevSonucu.Wait(); var response = görevSonucu.Result; response.EnsureSuccessStatusCode(); var taskString = response.Content.ReadAsStringAsync(); taskString.Wait(); sonuç = YanıtSonucunuParçala(taskString.Result); } catch { sonuç = new GReCaptchaYanıtı { Uygun = false }; sonuç.HataKodları.Add("Bilinmeyen hata"); } finally { httpClient.Dispose(); } return(sonuç); }