Ebay findCompletedItems返回null

时间:2012-08-28 13:56:05

标签: c# null ebay

我正在尝试使用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。

任何帮助将不胜感激。

1 个答案:

答案 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);期间连接。