2014-09-30 93 views
0

我正在嘗試使用eBay .Net SDK獲取eBay德國的所有根類別。我有這樣的代碼:爲什麼GetCategoriesCall返回0個類別?

var rootCategoriesCall = new GetCategoriesCall(apiContext); 
rootCategoriesCall.Site = SiteCodeType.Germany; 
rootCategoriesCall.LevelLimit = 1; 
var categories = rootCategoriesCall.GetCategories().Cast<CategoryType>(); 

調用似乎被執行(有伴隨的eBay API調用常用的延遲),它並不會引發錯誤,但我得到0類別。有誰知道什麼可能會導致這種行爲,以及如何解決它?

請注意,我使用沙盒令牌。至於rootCategoriesCall.LevelLimit = 1;一行。 This site表明它只是獲取根類別的一種方式。

P.S.我也嘗試設置CategorySiteID而不是Site並且根本不設置它(默認爲eBay US),但結果是一樣的。

+0

這不起作用? http://geekswithblogs.net/bosuch/archive/2012/06/25/retrieving-a-list-of-ebay-categories-using-the-.net-sdk.aspx – DavidG 2014-09-30 14:26:47

+0

@DavidG我以前見過這個頁面,但我決定再次將他們的代碼與我的代碼進行比較。看來,明確地向我的代碼中添加'rootCategoriesCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);'使它實際上工作。謝謝你的幫助。 – jahu 2014-09-30 14:32:07

+0

感覺有點厚顏無恥的我用它作爲答案! – DavidG 2014-09-30 14:33:02

回答

1

我不完全確定爲什麼它是必需的,但似乎我明確需要設置DetailLevel。如果我將呼叫更改爲:

var rootCategoriesCall = new GetCategoriesCall(apiContext); 
rootCategoriesCall.Site = SiteCodeType.Germany; 
rootCategoriesCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); 
rootCategoriesCall.LevelLimit = 1; 
var categories = rootCategoriesCall.GetCategories().Cast<CategoryType>(); 

我確實得到了根類別。

+0

.Site將手動覆蓋在api上下文中定義的網站。您需要爲此調用使用特定的類別ID屬性。 – user3791372 2016-06-05 04:58:16

+0

另外,如果您不提供類別網站ID,則默認爲在api上下文中定義的ID – user3791372 2016-06-05 05:05:55