@@ -29,7 +29,7 @@ public class RequestService : ApiUrls
29
29
protected string AmazonSandboxUrl { get ; set ; }
30
30
protected string AmazonProductionUrl { get ; set ; }
31
31
protected string AccessToken { get ; set ; }
32
-
32
+ protected IList < KeyValuePair < string , string > > LastHeaders { get ; set ; }
33
33
protected string ApiBaseUrl
34
34
{
35
35
get
@@ -105,6 +105,7 @@ protected void CreateAuthorizedPagedRequest(AmazonFilter filter, string url, Res
105
105
AddAccessToken ( ) ;
106
106
Request = await TokenGeneration . SignWithSTSKeysAndSecurityTokenAsync ( Request , RequestClient . BaseUrl . Host , AmazonCredential ) ;
107
107
var response = await RequestClient . ExecuteAsync < T > ( Request ) ;
108
+ SaveLastRequestHeader ( response . Headers ) ;
108
109
SleepForRateLimit ( response . Headers , rateLimitType ) ;
109
110
ParseResponse ( response ) ;
110
111
@@ -114,6 +115,18 @@ protected void CreateAuthorizedPagedRequest(AmazonFilter filter, string url, Res
114
115
}
115
116
return response . Data ;
116
117
}
118
+ private void SaveLastRequestHeader ( IList < RestSharp . Parameter > parameters )
119
+ {
120
+ LastHeaders = new List < KeyValuePair < string , string > > ( ) ;
121
+ foreach ( RestSharp . Parameter parameter in parameters )
122
+ {
123
+ if ( parameter != null && parameter . Name != null && parameter . Value != null )
124
+ {
125
+ LastHeaders . Add ( new KeyValuePair < string , string > ( parameter . Name . ToString ( ) , parameter . Value . ToString ( ) ) ) ;
126
+ }
127
+ }
128
+
129
+ }
117
130
private void RestHeader ( )
118
131
{
119
132
Request . Parameters . RemoveAll ( parameter => ParameterType . HttpHeader . Equals ( parameter . Type )
@@ -199,7 +212,7 @@ private void SleepForRateLimit(IList<RestSharp.Parameter> headers, RateLimitType
199
212
{
200
213
var response = await RequestClient . ExecuteAsync < T > ( Request ) ;
201
214
ParseResponse ( response ) ;
202
-
215
+ SaveLastRequestHeader ( response . Headers ) ;
203
216
if ( response . StatusCode == HttpStatusCode . OK && ! string . IsNullOrEmpty ( response . Content ) && response . Data == null )
204
217
{
205
218
response . Data = JsonConvert . DeserializeObject < T > ( response . Content ) ;
@@ -327,6 +340,7 @@ protected async Task RefreshTokenAsync(TokenDataType tokenDataType = TokenDataTy
327
340
328
341
AccessToken = token . access_token ;
329
342
}
343
+ public IList < KeyValuePair < string , string > > LastResponseHeader => LastHeaders ;
330
344
331
345
public CreateRestrictedDataTokenResponse CreateRestrictedDataToken ( CreateRestrictedDataTokenRequest createRestrictedDataTokenRequest )
332
346
{
0 commit comments