Esempio n. 1
0
        public ActionResult Contact()
        {
            var code = Request.QueryString["code"].ToString();

            Dictionary<string, string> dicParam = new Dictionary<string, string>();
            dicParam.Add("client_id", SysConst.AppKey);
            dicParam.Add("client_secret", SysConst.AppSecret);
            dicParam.Add("grant_type", "authorization_code");
            dicParam.Add("code", code);
            dicParam.Add("redirect_uri", "http://www.dabaolo.com/Home/Contact");

            Top.Api.Util.WebUtils webUtils = new Top.Api.Util.WebUtils();
            var result = webUtils.DoPost("https://oauth.taobao.com/token", dicParam);

            dynamic objResult = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(result);

            var sessionKey = objResult.access_token;

            InstanceLocator.Current.RegisterInstance<AuthorizedContext>(new AuthorizedContext() { SessionKey = sessionKey, AppKey = SysConst.AppKey, UserNick = objResult.taobao_user_nick, UserId = objResult.taobao_user_id, RefreshToken = objResult.refresh_token });

            //            var context = TopUtils.GetTopContext("6201a25b6a85595fe8af978a4c64ededdfh6ff412cdcb8b820330575");

            /*var context = new TopContext();
            context.SessionKey.SessionKey = "6201a25b6a85595fe8af978a4c64ededdfh6ff412cdcb8b820330575";

            InstanceLocator.Current.RegisterInstance<TopContext>(context);*/

            //ViewBag.Message = result;

            //todo SessionKey 是获取正确的,但是TopContext 有问题,得重构代码
            var req = new DeliveryTemplatesGetRequest { Fields = "template_id,template_name" };

            var tContext = InstanceLocator.Current.GetInstance<AuthorizedContext>();

            DeliveryTemplatesGetResponse response = client.Execute(req, tContext.SessionKey);

            if (response.IsError)
                throw new TopResponseException(response.ErrCode, response.ErrMsg, response.SubErrCode,
                                               response.SubErrMsg, response.TopForbiddenFields);

            var res = response.DeliveryTemplates;

            if (res != null)
            {
                ViewBag.Message = "{0} 个+{1}".StringFormat(res.Count, result);
            }
            else
            {
                ViewBag.Message = "0 个";
            }

            /*
            _goodsPublish.UpdateGoodsFromOnSale(_request,new string[] {"222989"}, false);
            */
            return View();
        }
Esempio n. 2
0
        public static FileInfo Download(string url, string saveDir)
        {
            FileInfo file = null;
            WebUtils wu = new WebUtils();
            HttpWebRequest req = wu.GetWebRequest(url, "GET");
            req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";

            HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
            if (CTYPE_ZIP.Equals(rsp.ContentType))
            {
                if (string.IsNullOrEmpty(saveDir))
                {
                    file = new FileInfo(Path.GetTempFileName() + ".zip");
                }
                else
                {
                    file = new FileInfo(Path.Combine(saveDir, Path.GetRandomFileName() + ".zip"));
                }

                using (System.IO.Stream rspStream = rsp.GetResponseStream())
                {
                    byte[] bytes = new byte[1024];
                    int len = 0;

                    using (FileStream fileStream = new FileStream(file.FullName, FileMode.OpenOrCreate))
                    {
                        while ((len = rspStream.Read(bytes, 0, bytes.Length)) > 0)
                        {
                            fileStream.Write(bytes, 0, len);
                        }
                    }
                }
            }
            else
            {
                string json = wu.GetResponseAsString(rsp, Encoding.GetEncoding(rsp.CharacterSet));
                if (!string.IsNullOrEmpty(json))
                {
                    IDictionary dict = Top.Api.Util.TopUtils.ParseJson(json);
                    string errCode = dict["code"] as string;
                    string errMsg = dict["message"] as string;
                    throw new Top.Api.TopException(errCode, errMsg);
                }
            }
            return file;
        }
Esempio n. 3
0
        /// <summary>
        /// 通过HTTP GET方式下载文件到指定的目录。
        /// </summary>
        /// <param name="url">需要下载的URL</param>
        /// <param name="destDir">需要下载到的目录</param>
        /// <returns>下载后的文件</returns>
        public static string Download(string url, string destDir)
        {
            string file = null;

            try
            {
                WebUtils wu = new WebUtils();
                HttpWebRequest req = wu.GetWebRequest(url, "GET");
                HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
                if (CTYPE_OCTET.Equals(rsp.ContentType))
                {
                    file = Path.Combine(destDir, GetFileName(rsp.Headers["Content-Disposition"]));
                    using (System.IO.Stream rspStream = rsp.GetResponseStream())
                    {
                        int len = 0;
                        byte[] buf = new byte[8192];
                        using (FileStream fileStream = new FileStream(file, FileMode.OpenOrCreate))
                        {
                            while ((len = rspStream.Read(buf, 0, buf.Length)) > 0)
                            {
                                fileStream.Write(buf, 0, len);
                            }
                        }
                    }
                }
                else
                {
                    throw new TopException(wu.GetResponseAsString(rsp, Encoding.UTF8));
                }
            }
            catch (WebException e)
            {
                throw new TopException("isv.file-already-download", e.Message);
            }
            return file;
        }
Esempio n. 4
0
        public ActionResult Contact()
        {
            var code = Request.QueryString["code"].ToString();

            Dictionary <string, string> dicParam = new Dictionary <string, string>();

            dicParam.Add("client_id", SysConst.AppKey);
            dicParam.Add("client_secret", SysConst.AppSecret);
            dicParam.Add("grant_type", "authorization_code");
            dicParam.Add("code", code);
            dicParam.Add("redirect_uri", "http://www.dabaolo.com/Home/Contact");


            Top.Api.Util.WebUtils webUtils = new Top.Api.Util.WebUtils();
            var result = webUtils.DoPost("https://oauth.taobao.com/token", dicParam);

            dynamic objResult = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(result);

            var sessionKey = objResult.access_token;

            InstanceLocator.Current.RegisterInstance <AuthorizedContext>(new AuthorizedContext()
            {
                SessionKey = sessionKey, AppKey = SysConst.AppKey, UserNick = objResult.taobao_user_nick, UserId = objResult.taobao_user_id, RefreshToken = objResult.refresh_token
            });

//            var context = TopUtils.GetTopContext("6201a25b6a85595fe8af978a4c64ededdfh6ff412cdcb8b820330575");

            /*var context = new TopContext();
             * context.SessionKey.SessionKey = "6201a25b6a85595fe8af978a4c64ededdfh6ff412cdcb8b820330575";
             *
             * InstanceLocator.Current.RegisterInstance<TopContext>(context);*/

            //ViewBag.Message = result;

            //todo SessionKey 是获取正确的,但是TopContext 有问题,得重构代码
            var req = new DeliveryTemplatesGetRequest {
                Fields = "template_id,template_name"
            };

            var tContext = InstanceLocator.Current.GetInstance <AuthorizedContext>();

            DeliveryTemplatesGetResponse response = client.Execute(req, tContext.SessionKey);

            if (response.IsError)
            {
                throw new TopResponseException(response.ErrCode, response.ErrMsg, response.SubErrCode,
                                               response.SubErrMsg, response.TopForbiddenFields);
            }

            var res = response.DeliveryTemplates;

            if (res != null)
            {
                ViewBag.Message = "{0} 个+{1}".StringFormat(res.Count, result);
            }
            else
            {
                ViewBag.Message = "0 个";
            }



            /*
             * _goodsPublish.UpdateGoodsFromOnSale(_request,new string[] {"222989"}, false);
             */
            return(View());
        }