2016-01-23 2 views
1

Я использую Java MWS API от Amazon. Недавно я получил Внутренняя ошибка, запросив GetOrder, которая была вызвана ограничениями дросселирования.Получение пределов дросселирования Amazon MWS

Как определить пределы дросселирования?

В docs я вижу

Amazon MWS обеспечивает значение заголовков в каждом ответ вызова, которые показывают почасовую квоту для текущей операции; количество вызовов, оставшихся в этой квоте; и дата и время, когда квота будет сброшена. Например:

Рентгеновские MWS-Квота-макс: 3600
Рентгеновские MWS-неконтингентированного остальные: 10
Рентгеновские MWS-Квота-resetsOn: Ср, 6 марта 2013 19:07:58 GMT

Но я не могу понять, как получить эти метаданные от ответа. Я ожидал, что они будут в GetReportResponse, которые я получаю от звонка getReport(GetReportRequest). Кажется, этих данных нет. По крайней мере, я не смог их получить.

Но что я могу видеть из вывода журнала регистрации:

org.apache.http.wire - < < "Рентгеновские MWS-Квота-макс: 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.
И это действительно так, что значения квот не отображаются через ответ или через WebServiceClient.
Поэтому я немного изменил исходный код MarketplaceWebServiceClient.java, чтобы вернуть значения квоты для последнего полученного ответа. . Где-то около линии 2100 она считывает postResponse = httpClient.execute(method, httpContext); и после этой линии я вставил

quotaMax = postResponse.getFirstHeader ("X-MWS-Квота-макс") GetValue();
quotaRemaining = postResponse.getFirstHeader («x-mws-quota-Осталось»). GetValue();
quotaResetsOn = postResponse.getFirstHeader ("x-mws-quota-resetsOn"). GetValue();

Это делает трюк для меня, и я могу получить значения квот непосредственно из клиента.

+0

У меня была такая же проблема, как и вы: ни один из значений заголовка дроссельной заслонки не задан, но когда я проверяю заголовок напрямую с помощью Fiddler, я тоже их не нахожу. Вы говорите, что получаете эти значения заголовка? –

+1

Ничего. Я только заметил, что эти заголовки ответов относятся только к apis с квотой _hourly_, но такие значения заголовка не предусмотрены для основных квот. –