2

DB で映画のASINを取得しようとし、 EAN経由で照合しようとしました。Amazon に接続するための単純な Java クラスを作成しました。

AWSECommerceServiceservice = new AWSECommerceService();
service.setHandlerResolver(new AwsHandlerResolver(AMAZON_SECRET_KEY));
AWSECommerceServicePortType port = service.getAWSECommerceServicePortDE();
Holder<OperationRequest> operationrequest = new Holder<OperationRequest>();
failedItem = 0;
doneItem = 0;

ItemLookup lookup = new ItemLookup();
lookup.setAWSAccessKeyId(AMAZON_ACCESS_ID);
lookup.setAssociateTag(ASSOCIATE_TAG);
ItemLookupRequest request = new ItemLookupRequest();
request.getResponseGroup().add("ItemAttributes");
request.setSearchIndex("Video");

request.setIdType("EAN");
//Here iterates on my amazon-movies object
   for (AmazonSIdN i : amazonItems) {
        request.getItemId().add(i.getEan());
         if (request.getItemId().size() % 10 == 0) { //numbers of items in request
             LOG.info("Request size = " + request.getItemId().size());
              break;
           }
    }
Holder<List<Items>> items = new Holder<List<Items>>();
lookup.getRequest().add(request);

port.itemLookup(lookup.getMarketplaceDomain(), lookup.getAWSAccessKeyId(), 
lookup.getAssociateTag(),lookup.getXMLEscaping(), lookup.getValidate(),  
lookup.getShared(), lookup.getRequest(),operationrequest, items);

        List<Items> result = items.value;
        for (int k = 0; k < result.get(0).getItem().size(); ++k) {
            Item i = result.get(0).getItem().get(k);
            //do something with item

        }

それは機能していますが、私にとって本当に奇妙なことが1つあります。この行では:

if (request.getItemId().size() % 10 == 0) { //numbers of items in request

10 WS リターンの代わりに 40 000 を使用します。

The server sent HTTP status code 413: Request Entity Too Large

そして、これは理解できます。しかし、10より大きい数値を入力すると、WSはenyエラーを返しませんが、結果にはアイテムがありません:

ここに画像の説明を入力

私が間違っていること、または設定を忘れたことを誰かに教えてもらえますか? 何かアドバイス?

4

1 に答える 1

1

答えを見つけたので、ここに置いておくと、将来誰かが時間を節約できるかもしれません。Amazon ItemLookupでは、 documentatnionは次のように書かれています。

ItemId-アイテムを一意に識別する1つ以上(最大10)の正の整数。番号の意味はIdTypeで指定されます。つまり、IdTypeがASINの場合、ItemId値はASINです。ItemIdisがASINの場合、リクエストで検索インデックスを指定することはできません。

タイプ:文字列

デフォルト:なし

制約:有効なアイテムIDである必要があります。複数のIDの場合は、最大10個のIDのコンマ区切りリストを使用します。

于 2013-03-18T09:35:01.030 に答える