public DefaultHttpRequestMessage(DefaultHttpRequestMessageOptions options) : base(options.HttpMethod, options.RequestUri) { if (!String.IsNullOrEmpty(options.Token)) { Headers.Authorization = new AuthenticationHeaderValue("Bearer", options.Token); } if (!String.IsNullOrEmpty(options.Body)) { Content = new StringContent(options.Body, System.Text.Encoding.UTF8, options.MediaType); } }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); string token = req.Query[RecaptchaToken]; if (string.IsNullOrWhiteSpace(token)) { return(new BadRequestObjectResult("Please pass a reCAPTCHA token on the query string.")); } if (_client == null) { _client = new HttpClient { BaseAddress = new Uri(BaseAddress) }; } string googleRecaptchaSecretKey = Environment.GetEnvironmentVariable("GoogleRecaptchaSecretKey", EnvironmentVariableTarget.Process); string endPoint = $"siteverify?secret={googleRecaptchaSecretKey}&response={token}"; DefaultHttpRequestMessageOptions options = new DefaultHttpRequestMessageOptions { HttpMethod = HttpMethod.Post, RequestUri = endPoint, }; using DefaultHttpRequestMessage requestMessage = new DefaultHttpRequestMessage(options); HttpResponseMessage responseMessage = await _client.SendAsync(requestMessage); string content = await responseMessage.Content.ReadAsStringAsync(); if (responseMessage.IsSuccessStatusCode) { return(new OkObjectResult(content)); } return(new BadRequestObjectResult($"Could not validate the reCAPTCHA token : {content}")); }