.NET 4.6.1 WebAPI2 send GET requests using HttpClient

211 views Asked by At

I am trying to build an API that receives a GET request from our website client, then makes a request to Eventbrite's API using out access token and returns the response to the web client.

I am trying to use HttpClient to make the request but it gives my Syste.NullReferenceException.

My code looks like:

public class CANWebsiteV3Controller : ApiController
{
    private static readonly HttpClient client = new HttpClient();
    private readonly HttpResponse _response;
    private readonly HttpRequest _request;

    public CANWebsiteV3Controller()
    {
        /*_response = HttpContext.Current.Response;
        _request = HttpContext.Current.Request;*/
    }

    // GET api/<controller>/5
    [Route("api2.0/CANWebsiteV3/GetEvents")]
    [HttpGet]
    public async void GetEvents()
    {
        string API_TOKEN = "XXXXXXXXXXXX";
        string ORGANIZATION_ID = "YYYYYYYYYY";
        string ENDPOINT = "https://www.eventbriteapi.com/v3/organizations/" + ORGANIZATION_ID + "/events/?time_filter=current_future";
        try
        {
            client.DefaultRequestHeaders.Clear();
            client.DefaultRequestHeaders.TryAddWithoutValidation("authorization", "Bearer XXXXXXXXXXXX");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var res = await client.GetAsync(ENDPOINT);
            if (res.IsSuccessStatusCode)
            {
                string eventResponse = res.Content.ReadAsStringAsync().Result;
                var events = JsonConvert.DeserializeObject(eventResponse);
                events.WriteToReponse();
            }
        }
        catch(Exception ex)
        {
            JsonResponse.NewResponse("Could not fetch events: "+ex.Message, false, ErrorType.Generic, HttpStatusCode.BadRequest);
        }
    }
}
0

There are 0 answers