我正在尝试使用FindCompletedItemRequest查询eBay,但服务器返回null
继承代码
public static CustomFindingService FindingService(){
CustomFindingService findingService;
log.InfoFormat("Connect to Ebay: START");
findingService = new CustomFindingService("XXXXXX-XXXX-XXXXX-XXXXX-XXXXX");
findingService.UseDefaultCredentials = true;
log.InfoFormat("Connect to Ebay: SUCCESS");
return findingService;
}
var fcir = new FindCompletedItemsRequest {keywords = "5mp", categoryId =new string[] {"31388"}}; // 31388 is digital cameras
var l = FindingService().findCompletedItems(fcir);
我尝试删除categoryId和/切换关键字似乎没什么帮助。调试向我显示它正在ping服务器只是服务器返回null。
任何帮助将不胜感激。
答案 0 :(得分:3)
我建议您为 CustomFindingService 提供代码。尽管如此,我仍然可以为您解决问题。
findingService = new CustomFindingService("XXXXXX-XXXX-XXXXX-XXXXX-XXXXX");
我猜测这会以与Finding API - C#.NET code sample类似的方式生成请求,其中appID是X系列。我猜您忘了将request.Headers.Add("X-EBAY-SOA-OPERATION-NAME", "findItemsByKeywords");
更改为request.Headers.Add("X-EBAY-SOA-OPERATION-NAME", "findCompletedItems");
。简单的解决方案是将请求的类型传递给它。例如。
public static CustomFindingService FindingService(string requestType){ // edit
CustomFindingService findingService;
log.InfoFormat("Connect to Ebay: START");
findingService = new CustomFindingService("XXXXXX-XXXX-XXXXX-XXXXX-XXXXX", requestType); // EDIT
findingService.UseDefaultCredentials = true;
log.InfoFormat("Connect to Ebay: SUCCESS");
return findingService;
}
var fcir = new FindCompletedItemsRequest {keywords = "5mp", categoryId =new string[] {"31388"}}; // 31388 is digital cameras
var l = FindingService(fcir.GetType().Name).findCompletedItems(fcir); // Edit
// Or since you know the Name already just skip the whole get type thing and pass it in directly.
另外,
log.InfoFormat("Connect to Ebay: SUCCESS");
return findingService;
我很确定这是不正确的。生成请求时,您不会同意。而是在var l = FindingService().findCompletedItems(fcir);
期间连接。