易趣API - getCategories超时

时间:2016-06-05 04:05:09

标签: c# ebay-api

尝试将所有类别从Ebay推入数据库。我已经尝试过增加底层api上下文的超时值,但是大约两分钟后我仍然会超时 - 我还需要做什么?

        var c = new eBay.Service.Call.GetCategoriesCall(this.apiContext);
        c.CategorySiteID = ((int)siteId).ToString(); // siteId is an eBay SiteCode enum value
        var version = c.GetCategoriesVersion();
        c.DetailLevelList = new DetailLevelCodeTypeCollection();
        c.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
        c.ViewAllNodes = !onlyLeafCategories;
        c.Timeout = 1000*60*20;
        c.GetCategories(); // this causes a connection closed / timeout

1 个答案:

答案 0 :(得分:0)

试试这段代码,它对我有用:

// get all categories from eBay
                    ApiContext context = GetApiContext();

                    GetCategoriesCall apiCall = new GetCategoriesCall(context)
                    {
                        EnableCompression = true,
                        ViewAllNodes = true

                    };
                    apiCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
                    apiCall.GetCategories();

    public static ApiContext GetApiContext()
    {
        //apiContext is a singleton,
        //to avoid duplicate configuration reading
        if (apiContext != null)
        {
            return apiContext;
        }
        else
        {
            apiContext = new ApiContext();

            //set Api Server Url
            apiContext.SoapApiServerUrl = "https://api.ebay.com/wsapi";

            //set Api Token to access eBay Api Server
            ApiCredential apiCredential = new ApiCredential();
            apiCredential.eBayToken ="YOUR_TOKEN";
            apiContext.ApiCredential = apiCredential;
            //set eBay Site target to US
            apiContext.Site = eBay.Service.Core.Soap.SiteCodeType.US;
            return apiContext;
        }
    }