public async Task <string> GetCaptchaVerification(SampleAPIArgs args) { string message = string.Empty; var url = "https://www.google.com/recaptcha/api/siteverify"; var content = new FormUrlEncodedContent(new Dictionary <string, string> { { "secret", this.reCAPTCHAVerificationOptions.Value.Secret }, { "response", args.reCAPTCHAResponse } }); var httpClient = httpClientFactory.CreateClient(); var response = await httpClient.PostAsync(url, content); response.EnsureSuccessStatusCode(); var verificationResponse = response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject <reCAPTCHAVerificationResponse>(verificationResponse.Result); if (result.Success) { message = "success"; return(message); } message = string.Join(", ", result.ErrorCodes.Select(err => err.Replace('-', ' '))); return(message); }
public async Task PostAsync(SampleAPIArgs sampleAPIArgs) { string url = $"api/captcha"; var httpResponseMessage = await _httpClient.PostAsJsonAsync(url, sampleAPIArgs); if (!httpResponseMessage.IsSuccessStatusCode) { throw new Exception("Failed"); } }
public async Task <IActionResult> Post([FromBody] SampleAPIArgs args) { var url = "https://www.google.com/recaptcha/api/siteverify"; var content = new FormUrlEncodedContent(new Dictionary <string, string> { { "secret", this.reCAPTCHAVerificationOptions.Value.Secret }, { "response", args.reCAPTCHAResponse } }); var httpClient = this.HttpClientFactory.CreateClient(); var response = await httpClient.PostAsync(url, content); response.EnsureSuccessStatusCode(); var verificationResponse = await response.Content.ReadAsAsync <reCAPTCHAVerificationResponse>(); if (verificationResponse.Success) { return(Ok()); } return(BadRequest(string.Join(", ", verificationResponse.ErrorCodes.Select(err => err.Replace('-', ' '))))); }