ebay-oauth-csharp-client icon indicating copy to clipboard operation
ebay-oauth-csharp-client copied to clipboard

Added Proxy Configuration

Open Darkpingouin opened this issue 4 years ago • 1 comments

I had trouble getting the Access Token and found out that the RestClient had no way to configure an IWebProxy. So I added ProxyUtil to configure our proxy and now it works properly.

I added the usage in the README but if you want I can put it in a special section of the README instead.

Darkpingouin avatar Jan 20 '21 09:01 Darkpingouin

I think you are touching on something quite important here. The HTTP client (restsharp in that case) is hardcoded in OAuth2Api.cs.

See line 241 of OAuth2Api.cs)

// Initialize client
RestClient client = new RestClient
{
    BaseUrl = new Uri(environment.ApiEndpoint())
};

This means you can't configure a proxy client or change anything, be it the proxy settings or the request timeout...

Instead of adding more hardcoded stuff to handle a the configuration of a proxy, I would suggest adding a simple http client dependency to the OAuth2Api class.

public interface IRestClientFactory
{
    RestClient Create();
}

We could then have a default implementation of that http client factory that give a new instance of RestClient set with the base URL (as above), but then if you want you can change the default implementation an inject another client configured to use a proxy.

bounav avatar May 22 '23 13:05 bounav