我是一个新手试图编写一个程序,使用查找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的要求输入了叶子类别作为输入。我已尝试过所有途径,但无法找到原因。有人可以告诉我有什么问题吗?提前致谢!
答案 0 :(得分: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。但这仍然只给出了每个类别下的方面。要获取该类别下每个项目的特定方面,应使用方面过滤器。我不确定如何初始化方面过滤器中每个方面的方面值以及如何将其与响应对象相关联。有什么想法吗?