2016-01-23 162 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相关,但这些标题值不提供给基本配额。 –