You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While attempting, and failing, to set the timeout for HTTP calls to the CyberSource gateway via the Configuration.Timeout I tracked it down to a second instance of the RestClient being created.
I'm not really sure what the code is meant to be doing at that point. It seems like ApiClient creates a RestClient instance in its contructor with the intention of using it for the API call. Configuration values are applied to that instance. But then a brand new instance is created in CallAuthenticationHeaders and it does not have the Configuration values applied.
I can fix my problem by changing:
RestClient = new RestClient("https://" + merchantConfig.HostName);
to
RestClient.BaseUrl = new Uri("https://" + merchantConfig.HostName);
It does seem to be a somewhat confusing and error prone approach. It would seem better to stick to setting the hostname in the ApiClient constructor rather than burying it down in an entry in the Configuration.MerchantConfigDictionaryObj dictionary.
The text was updated successfully, but these errors were encountered:
sipsorcery
added a commit
to nofrixion/cybersource-rest-client-dotnetstandard
that referenced
this issue
May 28, 2022
This issue is related with issue #26 which my team reported. We also pointed to CallAuthenticationHeaders where new instance of RestClient is recreated.
I raise also separate #46 "Update RestSharp to v107 and follow recommended usage".
While attempting, and failing, to set the timeout for HTTP calls to the CyberSource gateway via the Configuration.Timeout I tracked it down to a second instance of the RestClient being created.
I'm not really sure what the code is meant to be doing at that point. It seems like
ApiClient
creates aRestClient
instance in its contructor with the intention of using it for the API call. Configuration values are applied to that instance. But then a brand new instance is created inCallAuthenticationHeaders
and it does not have the Configuration values applied.I can fix my problem by changing:
RestClient = new RestClient("https://" + merchantConfig.HostName);
to
RestClient.BaseUrl = new Uri("https://" + merchantConfig.HostName);
It does seem to be a somewhat confusing and error prone approach. It would seem better to stick to setting the hostname in the ApiClient constructor rather than burying it down in an entry in the
Configuration.MerchantConfigDictionaryObj
dictionary.The text was updated successfully, but these errors were encountered: