Ejemplo n.º 1
0
        protected XDocument ItemSearch(string keywords, string searchIndex = "All", string responseGroup = "Large", int itemPage = 1)
        {
            var request = new Dictionary<string, string>();
            request["Service"] = "AWSECommerceService";
            request["Version"] = "2011-08-01";
            request["Operation"] = "ItemSearch";
            request["SearchIndex"] = searchIndex;
            request["ResponseGroup"] = responseGroup;
            request["Keywords"] = keywords;
            request["ItemPage"] = itemPage.ToString();

            var helper = new AmazonSignedRequestHelper(MY_AWS_ACCESS_KEY_ID, MY_AWS_SECRET_KEY, MY_ASSOCIATE_TAG, DESTINATION);
            var requestUrl = helper.Sign(request);
            var doc = XDocument.Load(requestUrl);

            TotalPages = Int32.Parse(doc
                .Element(NAMESPACE + "ItemSearchResponse")
                .Element(NAMESPACE + "Items")
                .Element(NAMESPACE + "TotalPages")
                .Value);

            // Amazon affiliate currently limits search results to 5 pages.
            TotalPages = TotalPages > MAX_SEARCH_RESULT ? MAX_SEARCH_RESULT : TotalPages;

            return doc;
        }
Ejemplo n.º 2
0
        // 准备用于重新装载的请求的 URL
        int GetReloadRequestUrl(
            List<ListViewItem> items,
            string strElementSet,
            out string strUrl,
            out string strError)
        {
            strError = "";
            strUrl = "";

            AmazonSignedRequestHelper helper = new AmazonSignedRequestHelper(
//MY_AWS_ACCESS_KEY_ID,
//MY_AWS_SECRET_KEY,
this.CurrentServer);

            if (items == null || items.Count == 0)
            {
                strError = "items 参数不应为空";
                return -1;
            }

            // 获得 ASIN 字符串
            StringBuilder asin = new StringBuilder(4096);
            foreach (ListViewItem item in items)
            {
                if (asin.Length > 0)
                    asin.Append(",");
                asin.Append(item.Text);
            }
            IDictionary<string, string> parameters = new Dictionary<string, String>();

            parameters["Service"] = "AWSECommerceService";
            parameters["Version"] = "2011-08-01";
            parameters["Operation"] = "ItemLookup";
            parameters["ItemId"] = asin.ToString();
            parameters["IdType"] = "ASIN";
            if (strElementSet == "F")
                parameters["ResponseGroup"] = "Large";
            else
                parameters["ResponseGroup"] = "Small";

#if TTT
            parameters["AssociateTag"] = ASSOCIATEKEY;
#endif

            strUrl = helper.Sign(parameters);
            return 0;
        }
Ejemplo n.º 3
0
        // 准备用于获得下一批浏览记录的请求的 URL
        int GetNextRequestUrl(out string strUrl,
            out string strError)
        {
            strError = "";
            strUrl = "";

            if (string.IsNullOrEmpty(this.m_strCurrentSearchedServer) == true)
            {
                strError = "this.m_strCurrentSearchedServer 为空";
                return -1;
            }

            AmazonSignedRequestHelper helper = new AmazonSignedRequestHelper(
//MY_AWS_ACCESS_KEY_ID,
//MY_AWS_SECRET_KEY,
this.m_strCurrentSearchedServer);    //  this.CurrentServer

            if (this.m_nCurrentPageNo == -1)
            {
                strError = "m_nCurrentPageNo 尚未初始化";
                return -1;
            }

            // ItemPage URL 参数的值是从 1 开始计算的
            m_searchParameters["ItemPage"] = (this.m_nCurrentPageNo + 1 + 1).ToString();

            strUrl = helper.Sign(m_searchParameters);
            return 0;
        }
Ejemplo n.º 4
0
        // 准备用于首次检索的 URL
        int GetSimpleSearchRequestUrl(out string strUrl,
            out string strError)
        {
            strError = "";
            strUrl = "";

                string strText = "";
                int nRet = this.amazonSimpleQueryControl_simple.BuildQueryString(out strText, out strError);
                if (nRet == -1)
                    return -1;

                AmazonSignedRequestHelper helper = new AmazonSignedRequestHelper(
//MY_AWS_ACCESS_KEY_ID,
//MY_AWS_SECRET_KEY,
this.CurrentServer);

            // IDictionary<string, string> r1 = this.amazonQueryControl1.ParameterTable;   // new Dictionary<string, String>();

            IDictionary<string, string> parameters = new Dictionary<string, String>();

            parameters["Service"] = "AWSECommerceService";
            parameters["Version"] = "2011-08-01";
            parameters["Operation"] = "ItemSearch";
            parameters["SearchIndex"] = "Books";
            parameters["Power"] = strText;

            if (this.AlwaysUseFullElementSet == true)
                parameters["ResponseGroup"] = "Large";
            else
                parameters["ResponseGroup"] = "Small";

#if TTT
            parameters["AssociateTag"] = ASSOCIATEKEY;
#endif

            m_searchParameters = parameters;
            m_strCurrentSearchedServer = this.CurrentServer;

            strUrl = helper.Sign(parameters);
            return 0;
        }
Ejemplo n.º 5
0
        // 准备用于获得下一批浏览记录的请求的 URL
        int GetNextRequestUrl(
            string strServerUrl,
            out string strUrl,
            out string strError)
        {
            strError = "";
            strUrl = "";

            AmazonSignedRequestHelper helper = new AmazonSignedRequestHelper(
                //MY_AWS_ACCESS_KEY_ID,
                //MY_AWS_SECRET_KEY,
strServerUrl);

            if (this.m_nCurrentPageNo == -1)
            {
                strError = "m_nCurrentPageNo 尚未初始化";
                return -1;
            }

            // ItemPage URL 参数的值是从 1 开始计算的
            m_searchParameters["ItemPage"] = (this.m_nCurrentPageNo + 1 + 1).ToString();

            strUrl = helper.Sign(m_searchParameters);
            return 0;
        }
Ejemplo n.º 6
0
        // private const string DESTINATION = "webservices.amazon.cn";  // "ecs.amazonaws.com";

        // 准备用于检索的 URL
        int GetOneLineSearchRequestUrl(
            string strServerUrl,
            string strWord,
            string strFrom,
            string strMatch,
            bool bUseFullElementSet,
            out string strUrl,
            out string strError)
        {
            strError = "";
            strUrl = "";

            if (string.IsNullOrEmpty(strWord) == true)
            {
                strError = "strWord 参数值不能为空";
                return -1;
            }

            string strText = "";
            // 构造检索式
            int nRet = BuildQueryString(
            strWord,
            strFrom,
            strMatch,
            out strText,
            out strError);
            if (nRet == -1)
                return -1;

            AmazonSignedRequestHelper helper = new AmazonSignedRequestHelper(
                //MY_AWS_ACCESS_KEY_ID,
                //MY_AWS_SECRET_KEY,
strServerUrl);

            IDictionary<string, string> parameters = new Dictionary<string, String>();

            parameters["Service"] = "AWSECommerceService";
            parameters["Version"] = "2011-08-01";
            parameters["Operation"] = "ItemSearch";
            parameters["SearchIndex"] = "Books";
            parameters["Power"] = strText;

            if (bUseFullElementSet == true)
                parameters["ResponseGroup"] = "Large";
            else
                parameters["ResponseGroup"] = "Small";

#if TTT
            parameters["AssociateTag"] = ASSOCIATEKEY;
#endif

            m_searchParameters = parameters;
            // m_strCurrentSearchedServer = this.CurrentServer;

            strUrl = helper.Sign(parameters);
            return 0;
        }