2016-01-23 192 views
1

我正在使用亞馬遜的Java MWS API。最近我收到內部錯誤,同時請求GetOrder這是由於限制。獲取亞馬遜MWS節流限制

如何確定節流限制?

docs我看到

亞馬遜MWS提供在顯示當前操作的每小時定額的每個呼叫響應標頭值;在配額中剩餘的電話數量;以及配額將重置的日期和時間。例如:

X-MWS-配額-MAX:3600
X-MWS-配額剩餘10
X-MWS-配額resetsOn:星期三,2013年3月6日19時07分58秒GMT

但我無法弄清楚如何從響應中獲取這個元數據。我期望他們在GetReportResponse,我從getReport(GetReportRequest)收到。看起來這個數據不存在。至少我沒有得到他們。

但我可以從日誌輸出看到的是:

org.apache.http.wire - < < 「X-MWS-配額-MAX:80.0」
org.apache.http。線 - < < 「X-MWS-配額剩餘:79.0」
org.apache.http.wire - < < 「X-MWS-配額resetsOn:2016-01-23T09:19:00.000Z」

這個數據的確似乎是t o在某處存在。我如何從響應中獲得這些信息?

回答

2

同時,我在MWS client來源中有點ha a。
實際情況是,配額值不通過響應或WebServiceClient公開。
因此,我稍微修改了MarketplaceWebServiceClient.java的源代碼以記錄上次收到的響應的配額值。 。 某處圍繞線2100讀取postResponse = httpClient.execute(method, httpContext); 和該行後,我插入

quotaMax = postResponse.getFirstHeader( 「X-MWS配額-MAX」)的getValue();
quotaRemaining = postResponse.getFirstHeader(「x-mws-quota-remaining」)。getValue();
quotaResetsOn = postResponse.getFirstHeader(「x-mws-quota-resetsOn」)。getValue();

這對我有用,我可以直接從客戶端獲得配額值。

+0

我一直有同樣的問題,你:沒有設置油門標題值,但是當我使用Fiddler直接檢查標題,我也沒有找到它們。你是說你收到這些標題值? –

+1

沒關係。我只注意到這些響應標題只與帶有_hourly_配額的apis相關,但這些標題值不提供給基本配額。 –