Ejemplo n.º 1
0
        /// <summary>
        /// 公共请求
        /// </summary>
        /// <param name="wtype">请求操作的类型(值范围在:1-18)具体请求对应值请看对应请求对应值</param>
        /// <param name="body">提交数据</param>
        /// <returns>内容</returns>
        private async static Task <string> Request(int wtype, string body)
        {
            try
            {
                var timestamp = FreeYunUtil.ToTimeStamp(DateTime.Now);


                var tem = FreeYunUtil.DesEncryptToByte(body, desKey, CipherMode.ECB, PaddingMode.PKCS7);
                var hex = FreeYunUtil.ByteToHex(tem);
                //var url = "https://api.freeyun.net/webgateway.html";

                var url = "https://bgp.freeyun.net/webgateway.html";

                var _tstr    = string.Format("{0}{1}{2}{3}{4}", wtype, timestamp, salt, appid, hex);
                var sign     = FreeYunUtil.MD5(_tstr);                                              //version=1.1.3&
                var sendBody = "appid={0}&secretkey={1}&wtype={2}&sign={3}&timestamp={4}&data={5}"; //这个版本号 是sdk网络验证的版本号 非软件的
                sendBody = string.Format(sendBody, appid, secretkey, wtype, sign, timestamp, hex);

                var item = new HttpItem()
                {
                    URL         = url,
                    Method      = System.Net.Http.HttpMethod.Post,
                    Postdata    = sendBody,
                    Encoding    = Encoding.UTF8,
                    ContentType = "application/x-www-form-urlencoded",
                    Timeout     = 30,
                };

                item.Header.Add("Version", "1.1.3");

                var result = await item.GetHtml();

                string html = result.Html;

                /*
                 *
                 *  var buffer = Encoding.UTF8.GetBytes(sendBody);
                 * retry:
                 * var req = HttpWebRequest.Create(url);
                 * req.Timeout = 60 * 1000;
                 * req.Method = "POST";
                 * req.ContentType = "application/x-www-form-urlencoded";
                 * req.ContentLength = buffer.Length;
                 * req.Headers.Add("Version", "1.1.3");
                 *
                 * req.GetRequestStream().Write(buffer, 0, buffer.Length);
                 * var html = string.Empty;
                 * using (var rsp = req.GetResponse())
                 * {
                 *  using (var reader = new StreamReader(rsp.GetResponseStream()))
                 *  {
                 *      html = reader.ReadToEnd();
                 *  }
                 * }
                 * if (html == "")
                 * {
                 *  Thread.Sleep(1000);
                 *  goto retry;
                 * }
                 *
                 */



                JObject json   = (JObject)JsonConvert.DeserializeObject(html);
                var     msg    = json["msg"].ToString();
                var     data   = json["data"].ToString();
                var     status = json["status"].ToString();
                if (status == "-1")
                {
                    throw new Exception(FreeYunUtil.IsNull(msg) ? "未知错误" : msg);
                }


                string str = Encoding.UTF8.GetString(FreeYunUtil.DesDecrypt(FreeYunUtil.HexToByte(data), desKey, CipherMode.ECB, PaddingMode.PKCS7));

                return(str);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return("");
            }

            // body = "{\"version\":\"1.1.1.0\",\"timestamp\":1501150648401}";
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 帐号注册_2
        /// </summary>
        /// <param name="usr">账号</param>
        /// <param name="pwd">密码</param>
        /// <param name="qq">QQ选填</param>
        /// <param name="email">邮箱选填</param>
        /// <param name="mobile">手机号码选填</param>
        /// <param name="invitingCode">邀请码选填</param>
        /// <param name="agentCode">代理商代理编号,该参数为代理商列表的代理编号,可空,可内置在软件用于指定不同的代理商注册的用户所有权</param>
        public async static Task <Result_Info> Register(string usr, string pwd,
                                                        string qq = "", string email = "", string mobile = "", string invitingCode = "", string agentCode = "")
        {
            string timestamp = FreeYunUtil.ToTimeStamp(DateTime.Now).ToString();

            Result_Info info = new Result_Info();

            JObject dic = new JObject();

            dic.Add("account", usr);
            dic.Add("password", pwd);
            dic.Add("macCode", macCode);
            dic.Add("timestamp", timestamp);
            dic.Add("secretKey", secretkey);

            if (!FreeYunUtil.IsNull(qq))
            {
                dic.Add("qq", qq);
            }


            if (!FreeYunUtil.IsNull(email))
            {
                dic.Add("email", email);
            }


            if (!FreeYunUtil.IsNull(mobile))
            {
                dic.Add("mobile", mobile);
            }


            if (!FreeYunUtil.IsNull(invitingCode))
            {
                dic.Add("mobile", mobile);
            }


            if (!FreeYunUtil.IsNull(agentCode))
            {
                dic.Add("agentCode", agentCode);
            }

            try
            {
                string data = JsonConvert.SerializeObject(dic);


                var ret = await Request(2, data);

                if (!FreeYunUtil.IsJson(ret))
                {
                    info.Html = ret;
                    return(info);
                }

                JObject json = (JObject)JsonConvert.DeserializeObject(ret);
                var     code = json["code"].ToString();
                if (code != "1006")
                {
                    info.Html = "注册失败,原因:" + GetMsg(code);
                }
                else
                {
                    info.Html    = "注册成功";
                    info.Is_bool = true;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);

                info.Html = ex.Message;
            }

            return(info);
        }