0

我是一个新手,试图编写一个程序来使用查找 API 从 eBay 获取服装图像数据库。我正在使用 Java 编程并使用 Windows 7 操作系统。从用户那里获取要搜索的关键字后,我使用 FindItemsAdvanced 调用来获取该类别下的产品列表。我想获取每个项目的属性,例如颜色、袖长等。为此,我使用 AspectHistogramContainer 来获取方面和值。代码片段如下:

AspectHistogramContainer aspectContainer=new AspectHistogramContainer();
aspectContainer=advanceResponse.getAspectHistogramContainer();
aspectContainer.setDomainDisplayName(keywords);
aspectContainer.setDomainName(keywords);            
List<Aspect> aspectList=aspectContainer.getAspect();
for(Aspect aspect:aspectList)
{               
    System.out.println(aspect.getName());
    List<AspectValueHistogram> aspectValueList= aspect.getValueHistogram();
    for(AspectValueHistogram aspectValue:aspectValueList)
    {
        System.out.println(aspectValue.getValueName());
        }
}

AdvanceResponse 是 FindItemsAdvancedResponse 对象。

但 AspectHistogramContainer 始终只有 null,即项目没有方面。根据 AspectHistogramContainer 的要求,我只给出了叶类别作为输入。我已经尝试了所有途径,但找不到原因。有人可以告诉我什么是错的吗?

4

1 回答 1

1

弄清楚了!我必须为 GetHistogramRequest 对象设置类别 ID,然后使用该对象来获取 AspectHistogramContainer。代码片段如下:

GetHistogramsRequest abcd = new GetHistogramsRequest();
abcd.setCategoryId(CatID.toString());
GetHistogramsResponse bb = port.getHistograms(abcd);
advanceResponse.setAspectHistogramContainer(bb.getAspectHistogramContainer());
AspectHistogramContainer aspectContainer=new AspectHistogramContainer();
aspectContainer=advanceResponse.getAspectHistogramContainer();
aspectContainer.setDomainDisplayName(keywords);
aspectContainer.setDomainName(keywords);            
List<Aspect> aspectList=aspectContainer.getAspect();
for(Aspect aspect:aspectList)
{               
    System.out.println(aspect.getName());
    List<AspectValueHistogram> aspectValueList= aspect.getValueHistogram();
    for(AspectValueHistogram aspectValue:aspectValueList)
    {
        System.out.println(aspectValue.getValueName());
        }
}

CatId 是 categoryId,advanceResponse 是 FindItemsByAdvanceRequestObject。但这仍然只给出每个类别下的方面。要获取该类别下每个项目的特定方面,应使用方面过滤器。我不确定如何初始化方面过滤器中每个方面的方面值以及如何将其与响应对象相关联。有任何想法吗?

于 2012-01-10T07:00:24.240 回答