0

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?

2
  • 1
    According to this, it returns JSON indicating the problem. Read the response. What does it say? Commented Jun 3, 2022 at 18:17
  • Is it a web application, if it is then it is an issue of CORS (Cross-Origin Resource Sharing) request Commented Jun 3, 2022 at 18:24

1 Answer 1

2

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()); } 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.