我正在使用Amazon的Java MWS API。最近,由于限制限制,我在请求GetOrder时收到内部错误。

如何确定节流极限?

docs中,我看到了


  Amazon MWS在每个调用响应中提供标头值,这些标头值显示当前操作的每小时配额。配额中剩余的通话数量;以及重新设置配额的日期和时间。例如:
  
  x-mws-quota-max:3600
  x-mws-quota-remaining:10
  x-mws-quota-resetsOn:2013年3月6日,星期三,格林尼治标准时间


但是我不知道如何从响应中获取此元数据。我希望它们位于通过调用GetReportResponse收到的getReport(GetReportRequest)中。似乎该数据不存在。至少我无法得到它们。

但是我从日志输出中看到的是:


  org.apache.http.wire-<  org.apache.http.wire-<  org.apache.http.wire-<

这些数据确实确实存在于某处。如何从响应中获取此信息?

最佳答案

同时,我在MWS client来源中做了一些改动。
实际上,配额值既不会通过响应也不会通过WebServiceClient公开。
因此,我对MarketplaceWebServiceClient.java的源代码做了一些修改,以修正最后收到的响应的配额值。
在2100行附近的某个地方,它显示为postResponse = httpClient.execute(method, httpContext);
在那行之后,我插入了


  quotaMax = postResponse.getFirstHeader(“ x-mws-quota-max”)。getValue();
  quotaRemaining = postResponse.getFirstHeader(“ x-mws-quota-remaining”)。getValue(); quotaResetsOn = postResponse.getFirstHeader(“ x-mws-quota-resetsOn”)。getValue();


这对我有用,我可以直接从客户端获取配额值。

09-25 22:17