Home > Software engineering >  HTTPS GET call using HttpClient
HTTPS GET call using HttpClient

Time:06-04

I am getting a 400 bad request trying to call an API using HttpClient and I am not exactly sure what I am missing.

I have tried the endpoint from my browser and from Postman and have not had any issues, but when I try to use the following code I get a 400 bad request:

using (HttpClient client = new HttpClient())
{
    var result = client.GetAsync("https://api.exchange.coinbase.com/products/ETH-USD/candles?granularity=300&start=2022-03-22&end=2022-03-23").Result;
}

Would anyone be able to tell me what I am missing to get this to work?

CodePudding user response:

The request from the original code returns {"message":"User-Agent header is required."}. If it is the case, add user-agent header to fix the problem

using System;
using System.Net.Http;
using System.Net.Http.Headers;

using (HttpClient client = new HttpClient())
{   
    client.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue(".NET", "6.0"));
    var result = await client.GetAsync("https://api.exchange.coinbase.com/products/ETH-USD/candles?granularity=300&start=2022-03-22&end=2022-03-23");   
    Console.WriteLine(await result.Content.ReadAsStringAsync());
}
  • Related