Devoloping WS-клиент Amazon с использованием API продукта в Java - PullRequest
2 голосов
/ 22 марта 2011

Я занимаюсь разработкой клиента веб-сервиса Amazon в Java.Я разработал все необходимые заглушки, как указано на их сайте.Я мог получить доступ к заголовку и asin, используя ответ ItemLookup.Мне нужно получить доступ к информации о ценах и изображения продуктов.Может кто-нибудь помочь мне разобраться в проблеме. Код и его ответ приведены ниже

public class iteml {
   public void itemdetails()
   {
    System.out.println("sample test");
    AWSECommerceService service = new AWSECommerceService();
    service.setHandlerResolver(new awshandlerresolver("secret key"));  // important
    AWSECommerceServicePortType port = service.getAWSECommerceServicePort();

ItemLookupRequest itemLookup = new ItemLookupRequest();
itemLookup.setIdType("ASIN");
itemLookup.getItemId().add("B0036WT3EI");

ItemLookup lookup = new ItemLookup();
lookup.setAWSAccessKeyId("APi key"); // important
lookup.getRequest().add(itemLookup);

ItemLookupResponse response = port.itemLookup(lookup);

String r = response.toString();
System.out.println("response: " + r);


      for (Items itemList:response.getItems())

        for (Item item : itemList.getItem())
        {
           final String asin= item.getASIN();
            System.out.println(asin);
            System.out.println("Title: " +
            item.getItemAttributes().getTitle());
           // Image I=item.getSmallImage();
             // final Image I1 = I;
           // String url=I1.getURL();
           // System.out.println(url);

            String pr=item.getItemAttributes().getListPrice().getFormattedPrice();
           // System.out.println(p);
            System.out.println(pr);
}
}


public static void main(String args[])
    {
      iteml l=new iteml();
      l.itemdetails();
    }
  }

вывод равен B0036WT3EI // Исключение asin id в потоке "main" java.lang.NullPointerException Название: Samsung LN19C350 19-дюймовый ЖК-телевизор HDTV с разрешением 720p 60 Гц (черный) на plugin.iteml.itemdetails (iteml.java:65) на plugin.iteml.main (iteml.java:73) Результат Java: 1

1 Ответ

2 голосов
/ 02 апреля 2011

Я боюсь немного опоздать, но мы идем.

После этого куска кода:

ItemLookupRequest itemLookup = new ItemLookupRequest();
itemLookup.setIdType("ASIN");
itemLookup.getItemId().add("B0036WT3EI");

добавьте следующую строку:

itemLookup.setResponseGroup(new String[] { "Images", "ItemAttributes" });

Нужно сказать, что вы хотите, чтобы запрос ItemLookupRequest возвратил ответ и с Images, и с ItemAttributes (откуда вы извлекаете ListPrice).

Я не тестировал в Java, но должен работать нормально.

...