Skip to content

Commit 93b7386

Browse files
committed
fix #242
1 parent 7892cd6 commit 93b7386

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

Source/FikaAmazonAPI.SampleCode/Program.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ static async Task Main(string[] args)
4444
ItemCondition = ItemCondition.New,
4545
});
4646

47+
var obb = amazonConnection.ProductPricing.LastResponseHeader;
4748

4849
//use this method automatically know if the report are RDT or not
4950
var data2222 = amazonConnection.Reports.CreateReportAndDownloadFile(ReportTypes.GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING, DateTime.UtcNow.AddDays(-2), DateTime.UtcNow, null);

Source/FikaAmazonAPI/Services/RequestService.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class RequestService : ApiUrls
2929
protected string AmazonSandboxUrl { get; set; }
3030
protected string AmazonProductionUrl { get; set; }
3131
protected string AccessToken { get; set; }
32-
32+
protected IList<KeyValuePair<string, string>> LastHeaders { get; set; }
3333
protected string ApiBaseUrl
3434
{
3535
get
@@ -105,6 +105,7 @@ protected void CreateAuthorizedPagedRequest(AmazonFilter filter, string url, Res
105105
AddAccessToken();
106106
Request = await TokenGeneration.SignWithSTSKeysAndSecurityTokenAsync(Request, RequestClient.BaseUrl.Host, AmazonCredential);
107107
var response = await RequestClient.ExecuteAsync<T>(Request);
108+
SaveLastRequestHeader(response.Headers);
108109
SleepForRateLimit(response.Headers, rateLimitType);
109110
ParseResponse(response);
110111

@@ -114,6 +115,18 @@ protected void CreateAuthorizedPagedRequest(AmazonFilter filter, string url, Res
114115
}
115116
return response.Data;
116117
}
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+
}
117130
private void RestHeader()
118131
{
119132
Request.Parameters.RemoveAll(parameter => ParameterType.HttpHeader.Equals(parameter.Type)
@@ -199,7 +212,7 @@ private void SleepForRateLimit(IList<RestSharp.Parameter> headers, RateLimitType
199212
{
200213
var response = await RequestClient.ExecuteAsync<T>(Request);
201214
ParseResponse(response);
202-
215+
SaveLastRequestHeader(response.Headers);
203216
if (response.StatusCode == HttpStatusCode.OK && !string.IsNullOrEmpty(response.Content) && response.Data == null)
204217
{
205218
response.Data = JsonConvert.DeserializeObject<T>(response.Content);
@@ -327,6 +340,7 @@ protected async Task RefreshTokenAsync(TokenDataType tokenDataType = TokenDataTy
327340

328341
AccessToken = token.access_token;
329342
}
343+
public IList<KeyValuePair<string, string>> LastResponseHeader => LastHeaders;
330344

331345
public CreateRestrictedDataTokenResponse CreateRestrictedDataToken(CreateRestrictedDataTokenRequest createRestrictedDataTokenRequest)
332346
{

0 commit comments

Comments
 (0)