Пример #1
0
        public bool Login()
        {
            try
            {
                var client  = new RestClient(Config.LoginUrl);
                var request = new RestRequest(Method.POST);
                request.AddParameter(Config.KeyAct, Config.ActLogin);
                request.AddParameter(Config.KeyAdminId, Config.AdminId);
                request.AddParameter(Config.KeyAdminPwd, Config.AdminPwd);

                var response = client.Execute(request);
                if (QsResponse.TryParse(response.Content, out var qsResponse))
                {
                    if (qsResponse.IsOk)
                    {
                        LoginTime  = response.Cookies[0].TimeStamp;
                        ExpireTime = response.Cookies[0].Expires;
                        Token      = response.Cookies[0].Value;
                        Console.WriteLine($"[Login Success] Code={qsResponse.Code}  Msg={qsResponse.Msg}");
                        return(true);
                    }
                    else
                    {
                        Console.WriteLine($"[Login Failed] Code={qsResponse.Code}  Msg={qsResponse.Msg}");
                    }
                }
                Console.WriteLine($"[Login Failed] Unknown response:{response.Content}");
                return(false);
            }
            catch (Exception e)
            {
                Console.WriteLine($"[Login Failed] {e}");
                return(false);
            }
        }
Пример #2
0
 public static bool TryParse(string jsonStr, out QsResponse response)
 {
     try
     {
         response = Parse(jsonStr);
         return(true);
     }
     catch (Exception e)
     {
         response = null;
         return(false);
     }
 }
Пример #3
0
        public bool StartUpload(string fileName, out QsResponse shareInfo)
        {
            shareInfo = null;
            if (!CheckLogin())
            {
                return(false);
            }
            var shortFileName = Path.GetFileName(fileName);

            try
            {
                var client  = new RestClient(Config.StartUploadUrl);
                var request = new RestRequest(Method.POST);
                request.AddParameter(Config.KeyFileName, shortFileName);
                request.AddCookie(Config.KeyToken, Token);

                var response = client.Execute(request);
                if (QsResponse.TryParse(response.Content, out var qsResponse))
                {
                    if (qsResponse.IsOk)
                    {
                        shareInfo = qsResponse;
                        Console.WriteLine($"[Start Upload Success] Info={qsResponse}");
                        return(true);
                    }
                    else
                    {
                        Console.WriteLine($"[Start Upload Failed] Code={qsResponse.Code}  Msg={qsResponse.Msg}");
                    }
                }
                Console.WriteLine($"[Start Upload Failed] Unknown response:{response.Content}");
                return(false);
            }
            catch (Exception e)
            {
                Console.WriteLine($"[Start Upload Failed] {e}");
                return(false);
            }
        }
Пример #4
0
        public bool FinishUpload(QsResponse shareInfo)
        {
            if (!CheckLogin())
            {
                return(false);
            }

            try
            {
                var client  = new RestClient(Config.FinishUploadUrl);
                var request = new RestRequest(Method.POST);
                request.AddParameter(Config.KeyShareId, shareInfo.ShareId);
                request.AddCookie(Config.KeyToken, Token);

                var response = client.Execute(request);
                if (QsResponse.TryParse(response.Content, out var qsResponse))
                {
                    if (qsResponse.IsOk)
                    {
                        Console.WriteLine($"[Finish Upload Success] Code={qsResponse.Code}  Msg={qsResponse.Msg}");
                        return(true);
                    }
                    else
                    {
                        Console.WriteLine($"[Finish Upload Failed] Code={qsResponse.Code}  Msg={qsResponse.Msg}");
                    }
                }
                Console.WriteLine($"[Finish Upload Failed] Unknown response:{response.Content}");
                return(false);
            }
            catch (Exception e)
            {
                Console.WriteLine($"[Finish Upload Failed] {e}");
                return(false);
            }
        }
Пример #5
0
        public bool Upload(string fileName, QsResponse lastUploadedInfo, out QsResponse uploadInfo)
        {
            uploadInfo = null;
            if (!CheckLogin())
            {
                return(false);
            }
            try
            {
                var fileInfo = new FileInfo(fileName);

                var uploaded = lastUploadedInfo.Start + lastUploadedInfo.Length;
                var end      = uploaded < fileInfo.Length ? uploaded : fileInfo.Length;

                var readStream = File.OpenRead(fileName);

                readStream.Seek(lastUploadedInfo.Start.Value, SeekOrigin.Begin);
                int    start = int.Parse(lastUploadedInfo.Start.Value.ToString());
                int    len   = int.Parse((end - lastUploadedInfo.Start.Value).ToString());
                byte[] chunk = new byte[len];
                readStream.Read(chunk, 0, len);
                var client  = new RestClient(Config.UploadUrl);
                var request = new RestRequest(Method.POST);
                request.AddHeader("Content-Type", "multipart/form-data");
                request.AddCookie(Config.KeyToken, Token);

                request.AddParameter(Config.KeyShareId, lastUploadedInfo.ShareId);
                request.AddParameter(Config.KeyStart, lastUploadedInfo.Start);
                request.AddParameter(Config.KeyLen, len);
                request.AddFileBytes(Config.KeyChunk, chunk, fileInfo.Name);
                readStream.Close();
                var response = client.Execute(request);
                if (QsResponse.TryParse(response.Content, out var qsResponse))
                {
                    if (qsResponse.IsOk)
                    {
                        uploadInfo = qsResponse;
                        Console.WriteLine($"[Upload Step Success] File={fileName} Info={qsResponse}");
                        if (uploadInfo.Start >= fileInfo.Length)
                        {
                            return(true);
                        }
                        else
                        {
                            return(Upload(fileName, uploadInfo, out var nextUploadInfo));
                        }
                    }
                    else
                    {
                        Console.WriteLine($"[Upload Step Failed] File={fileName} Code={qsResponse.Code}  Msg={qsResponse.Msg}");
                    }
                }
                Console.WriteLine($"[Upload Step Failed] File={fileName} Unknown response:{response.Content}");
                return(false);
            }
            catch (Exception e)
            {
                Console.WriteLine($"[Upload Step Failed] File={fileName} Error={e}");
                return(false);
            }
        }