Question

C# SDK - Get X-Rate-Limit headers from response

  • 10 December 2019
  • 10 replies
  • 1915 views

Using the RingCentral.Net SDK - how do retrieve the X-Rate-Limit-* headers from the responses ?


10 replies

Hi,

Please check the below link

https://medium.com/ringcentral-developers/ringcentral-api-rate-limit-explained-2280fe53cb16

Userlevel 1

Using the RingCentral .Net SDK, you can check API limit header as shown below:

static RestClient rcsdk;

static void Main(string[] args)
{
  rcsdk = new RestClient(RINGCENTRAL_CLIENTID, RINGCENTRAL_CLIENTSECRET, RINGCENTRAL_PRODUCTION);
  rcsdk.Authorize(RINGCENTRAL_USERNAME, RINGCENTRAL_EXTENSION, RINGCENTRAL_PASSWORD).Wait();
  rcsdk.AfterHttpCall += EventHandler;
}
static void EventHandler(object sender, HttpCallEventArgs eventArgs)
{
  var rateLimitRemaining = eventArgs.httpResponseMessage.Headers.First(i => i.Key == "X-Rate-Limit-Remaining").Value.First();
  Console.WriteLine("Remaining: " + rateLimitRemaining);
}

Hi Phong Vu,

I don't see AfterHttpCall in my ringcentral DLL. (Assembly RingCentral.Net, Version=1.0.0.0)

I am using Nuget Packaage.


Am I missing something...

Userlevel 1

What version of the RingCentral .NET SDK do you use?

This does not work in RingCentral.net SDK version 5.2. The AfterHTTPCall event does not exist.

Userlevel 1

RingCentral .NET SDK 5.x has major changes and there are many source breaks. It supports SDK extensions mechanism. And to catch the events, create and install the EventsExtension as shown below:

RestClient rcsdk = new RestClient(RC_CLIENTID, RC_CLIENTSECRET, RC_PRODUCTION);
rcsdk.Authorize(RC_USERNAME, RC_EXTENSION, RC_PASSWORD).Wait();
var eventsExtension = new EventsExtension();
rcsdk.InstallExtension(eventsExtension).Wait();
eventsExtension.RequestSuccess += EventHandler;
...
static void EventHandler(object sender, HttpMessages httpMessages)
{
    var rateLimitRemaining = httpMessages.httpResponseMessage.Headers.First(i => i.Key == "X-Rate-Limit-Remaining").Value.First();
    Console.WriteLine("Remaining: " + rateLimitRemaining);
}

I will try this and report back.

  1. var eventsExtension = new EventsExtension();

What do I have to do to make it work for EventsExtension as I am getting an error to create a namespace for it. Do I have to install some package from Nuget?

What do you mean by "create and install the EventsExtension as shown below: ". Can you clarify this?

@Carl McFarland Please go through below article about RingCentral .NET SDK 5 which supports extensions:

https://medium.com/ringcentral-developers/ringcentral-net-sdk-5-0-and-its-extensions-2992a5dc5caa

Check the Events extension:

https://github.com/ringcentral/RingCentral.Net/tree/master/RingCentral.Net.Events

I will try this and report back. Thank you for quick reply.

Reply