Jump to content

Recommended Posts

28 phút trước, Lưu Đình Nhật said:

Mỵ ơi cho tui hỏi get mấy cái thông tin như z thì dùng param hả ?? z còn cái token thì dùng cái MultipartContent đưa lên à ?? 

2021-06-02_151212.png

bạn dùng cái nào cũng được, cái nào nó ra kết quả thì dùng nha :167788080085145:

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites

Mình mới học HttpRequest, đang tập Upload file trên trang: https://up.ufile.io/

Mình post data để lấy fuid của nó, mà cứ gặp lỗi (xNet.HttpException: 'Ошибка на стороне клиента. Код состояния: 400') như trong hình: https://ibb.co/8bkZrhp

Mong mọi người chỉ giáo :v

Code của mình:

 		public string BrowsFile()
        {
            OpenFileDialog dialog = new OpenFileDialog();
            if(dialog.ShowDialog() == DialogResult.OK)
            {
                return dialog.FileName;
            }
            return null;
        }


        string Getdata(HttpRequest http, string url, string UserAgent = null)
        {
            if (!string.IsNullOrEmpty(UserAgent))
            {
                http.UserAgent = UserAgent;
            }

            string html = http.Get(url).ToString();
            return html;
        }


        public string UploadData(HttpRequest http, string url, MultipartContent data = null)
        {
            var html = http.Post(url, data).ToString();
            return html;

        }



        string Get_csrf_test_name(HttpRequest http, string url, string UserAgent = null)
        {
            string html = Getdata(http, url, UserAgent);
            File.WriteAllText("Token.html", html);

            if (!string.IsNullOrEmpty(UserAgent))
            {
                http.UserAgent = UserAgent;
            }


            string csrf_test_name = "";

            var res = Regex.Matches(html, @"(?<=class=""csrf_test_name"" name=""csrf_test_name"" value="").*?(?="")", RegexOptions.Singleline);

            if (res != null && res.Count > 0)
            {
                csrf_test_name = res[0].ToString();
            }

            return csrf_test_name;

        }


        private void btn_UploadFile_Click(object sender, EventArgs e)
        {
            string path = BrowsFile();
            FileInfo file = new FileInfo(path);
            string file_size = file.Length.ToString();

            HttpRequest http = new HttpRequest();
            http.Cookies = new CookieDictionary();


            string UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Edg/92.0.902.78";


            string csrf_test_name = Get_csrf_test_name(http, "https://ufile.io/", UserAgent);


            MultipartContent data = new MultipartContent()
            {
                {new StringContent("csrf_test_name"), csrf_test_name},
                {new StringContent("file_size"), file_size}
            };

            UploadData(http, "https://up.ufile.io/v1/upload/create_session", data);

        }

 

Edited by Bùi Thế Việt

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites
17 giờ trước, Bùi Thế Việt said:

Mình mới học HttpRequest, đang tập Upload file trên trang: https://up.ufile.io/

Mình post data để lấy fuid của nó, mà cứ gặp lỗi (xNet.HttpException: 'Ошибка на стороне клиента. Код состояния: 400') như trong hình: https://ibb.co/8bkZrhp

Mong mọi người chỉ giáo :v

Code của mình:


 		public string BrowsFile()
        {
            OpenFileDialog dialog = new OpenFileDialog();
            if(dialog.ShowDialog() == DialogResult.OK)
            {
                return dialog.FileName;
            }
            return null;
        }


        string Getdata(HttpRequest http, string url, string UserAgent = null)
        {
            if (!string.IsNullOrEmpty(UserAgent))
            {
                http.UserAgent = UserAgent;
            }

            string html = http.Get(url).ToString();
            return html;
        }


        public string UploadData(HttpRequest http, string url, MultipartContent data = null)
        {
            var html = http.Post(url, data).ToString();
            return html;

        }



        string Get_csrf_test_name(HttpRequest http, string url, string UserAgent = null)
        {
            string html = Getdata(http, url, UserAgent);
            File.WriteAllText("Token.html", html);

            if (!string.IsNullOrEmpty(UserAgent))
            {
                http.UserAgent = UserAgent;
            }


            string csrf_test_name = "";

            var res = Regex.Matches(html, @"(?<=class=""csrf_test_name"" name=""csrf_test_name"" value="").*?(?="")", RegexOptions.Singleline);

            if (res != null && res.Count > 0)
            {
                csrf_test_name = res[0].ToString();
            }

            return csrf_test_name;

        }


        private void btn_UploadFile_Click(object sender, EventArgs e)
        {
            string path = BrowsFile();
            FileInfo file = new FileInfo(path);
            string file_size = file.Length.ToString();

            HttpRequest http = new HttpRequest();
            http.Cookies = new CookieDictionary();


            string UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Edg/92.0.902.78";


            string csrf_test_name = Get_csrf_test_name(http, "https://ufile.io/", UserAgent);


            MultipartContent data = new MultipartContent()
            {
                {new StringContent("csrf_test_name"), csrf_test_name},
                {new StringContent("file_size"), file_size}
            };

            UploadData(http, "https://up.ufile.io/v1/upload/create_session", data);

        }

 

à bạn muốn upload hả..mỵ đọc lại tưởng download..

@Bùi Thế Việt bạn sửa đoạn creat session thành thế này nhé :

string DataPost = "csrf_test_name=" + csrf_test_name + "&file_size=" + file.Length.ToString();
response = request.Post("https://up.ufile.io/v1/upload/create_session", DataPost, "application/x-www-form-urlencoded; charset=UTF-8");

 

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites
5 giờ trước, Thiên Chi Kiều Nữ said:

à bạn muốn upload hả..mỵ đọc lại tưởng download..

@Bùi Thế Việt bạn sửa đoạn creat session thành thế này nhé :


string DataPost = "csrf_test_name=" + csrf_test_name + "&file_size=" + file.Length.ToString();
response = request.Post("https://up.ufile.io/v1/upload/create_session", DataPost, "application/x-www-form-urlencoded; charset=UTF-8");

 

Khi nào thì mình dùng 'MultipartContent DataPost', khi nào thì mình dùng 'string DataPost' vậy Mỵ nhỉ :a12:

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites
9 giờ trước, Thiên Chi Kiều Nữ said:

à bạn muốn upload hả..mỵ đọc lại tưởng download..

@Bùi Thế Việt bạn sửa đoạn creat session thành thế này nhé :


string DataPost = "csrf_test_name=" + csrf_test_name + "&file_size=" + file.Length.ToString();
response = request.Post("https://up.ufile.io/v1/upload/create_session", DataPost, "application/x-www-form-urlencoded; charset=UTF-8");

 

Tiện cho mình hỏi, mình Get Token trên trang: https://vtcgame.vn/nap-vcoin/qua-vtc-pay.html

Mà bị lỗi báo là trang chủ không phản hồi, như hình: https://ibb.co/Qc2BvZv

        string GetToken(HttpRequest http, string url)
        {
            string html = http.Get(url).ToString();
            File.WriteAllText("token.html", html);


            string Token = "";
            var res = Regex.Matches(html, @"(?<=__RequestVerificationToken"" type=""hidden"" value="").*?(?="")", RegexOptions.Singleline);
            if( res!= null && res.Count > 0)
            {
                Token = res[1].ToString();
            }    

            return Token;
        }

        private void btn_NormalCaptcha_Click(object sender, EventArgs e)
        {
            HttpRequest http = new HttpRequest();

            http.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Edg/92.0.902.78";

            string Token =  GetToken(http, "https://vtcgame.vn/nap-vcoin/qua-vtc-pay.html");
        }

:a16:

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites
3 giờ trước, Bùi Thế Việt said:

Tiện cho mình hỏi, mình Get Token trên trang: https://vtcgame.vn/nap-vcoin/qua-vtc-pay.html

Mà bị lỗi báo là trang chủ không phản hồi, như hình: https://ibb.co/Qc2BvZv. Nhưng mình đổi User Agent thì lúc Get được, lúc không. 

Get được, thì tới khi Post Data lên thì lại báo lỗi: SocketException: 'An existing connection was forcibly closed by the remote host', như hình: https://ibb.co/tXYMnCy


        string GetToken(HttpRequest http, string url)
        {
            string html = http.Get(url).ToString();
            File.WriteAllText("token.html", html);


            string Token = "";
            var res = Regex.Matches(html, @"(?<=__RequestVerificationToken"" type=""hidden"" value="").*?(?="")", RegexOptions.Singleline);
            if( res!= null && res.Count > 0)
            {
                Token = res[1].ToString();
            }    

            return Token;
        }

        private void btn_NormalCaptcha_Click(object sender, EventArgs e)
        {
            HttpRequest http = new HttpRequest();
            http.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0";
            http.MaximumKeepAliveRequests = 999999999;

            string Token =  GetToken(http, "https://vtcgame.vn/nap-vcoin/qua-vtc-pay.html");
	    MessageBox.Show(Token);
          
            string Captcha = "aaaa";
            MultipartContent Data = new MultipartContent()
            {
                { new StringContent(Token), "__RequestVerificationToken" },
                { new StringContent("aaavsdvsdv"), "TKDuocNap"},
                { new StringContent("3000"), "Quantity"},
                { new StringContent(Captcha), "Captcha"},
                { new StringContent(""), "CaptchaVerify"},
                { new StringContent("MoMo"), "BankCode"},
                { new StringContent("0877799988"), "Phone"}
            };

            var html = http.Post("https://vtcgame.vn/Vcoin/TopupByEWallet", Data).ToString();
            File.WriteAllText("response.html", html);


            Process.Start(new ProcessStartInfo("response.html") { UseShellExecute = true });

        }

:a16:

 

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites
20 giờ trước, Bùi Thế Việt said:

Khi nào thì mình dùng 'MultipartContent DataPost', khi nào thì mình dùng 'string DataPost' vậy Mỵ nhỉ :a12:

Nó là content-type trong request header đấy bạn. Bạn đọc nó là biết khi nào sử dụng string khi nào sử dụng multipartdata thôi.

 

12 giờ trước, Bùi Thế Việt said:

 

Mỵ thấy vào bình thường, không lỗi gì cả.. có điều khi post lại ra hệ thống bận .. chứ ko phải ra lỗi sai captcha ..

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites

Mình muốn Upload Ảnh trên trang: https://imgbb.com/

Mà nghiên cứu 2 ngày hơn vẫn chưa ra. Không biết sai chỗ nào. Nhờ mọi người gỡ giúp.


    private void btn_Uploadd_Click(object sender, EventArgs e)
        {
            HttpRequest http = new HttpRequest();
            http.Cookies = new CookieDictionary();

            string UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.38";
            if (string.IsNullOrEmpty(UserAgent))
            {
                http.UserAgent = UserAgent;
            }

            string Token = Get_Token(http, "https://imgbb.com/login");
            string path = @"C:\Users\16102\Downloads\images\image-6.png";
            MultipartContent dataPost2 = new MultipartContent()
            {
                {new FileContent(path), "source", Path.GetFileName(path)},
                {new StringContent("file"), "type" },
                {new StringContent("action"), "upload"},
                {new StringContent(MillisecondsTimestamp(DateTime.Now).ToString()), "timestamp"},
                {new StringContent(Token), "auth_token"}
            };

            var html2 = http.Post("https://im.ge/json", dataPost2);
            File.WriteAllText("Respone.html", html2.ToString());
            MessageBox.Show("    Done");

        }


      public string Get_Token(HttpRequest http, string url)
        {
            string token_html = http.Get(url).ToString();
            var res = Regex.Matches(token_html, @"(?<=PF\.obj\.config\.auth_token="").*?(?="")");
            string token = "";
            if (res.Count() > 0) token = res[0].ToString();
            return token;
        }


        public long MillisecondsTimestamp(DateTime date)
        {
                DateTime baseDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                return (long)(date.ToUniversalTime() - baseDate).TotalMilliseconds;
        }

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites
12 giờ trước, Sunyata said:

Mình muốn Upload Ảnh trên trang: https://imgbb.com/

Mà nghiên cứu 2 ngày hơn vẫn chưa ra. Không biết sai chỗ nào. Nhờ mọi người gỡ giúp.



    private void btn_Uploadd_Click(object sender, EventArgs e)
        {
            HttpRequest http = new HttpRequest();
            http.Cookies = new CookieDictionary();

            string UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.38";
            if (string.IsNullOrEmpty(UserAgent))
            {
                http.UserAgent = UserAgent;
            }

            string Token = Get_Token(http, "https://imgbb.com/login");
            string path = @"C:\Users\16102\Downloads\images\image-6.png";
            MultipartContent dataPost2 = new MultipartContent()
            {
                {new FileContent(path), "source", Path.GetFileName(path)},
                {new StringContent("file"), "type" },
                {new StringContent("action"), "upload"},
                {new StringContent(MillisecondsTimestamp(DateTime.Now).ToString()), "timestamp"},
                {new StringContent(Token), "auth_token"}
            };

            var html2 = http.Post("https://im.ge/json", dataPost2);
            File.WriteAllText("Respone.html", html2.ToString());
            MessageBox.Show("    Done");

        }


      public string Get_Token(HttpRequest http, string url)
        {
            string token_html = http.Get(url).ToString();
            var res = Regex.Matches(token_html, @"(?<=PF\.obj\.config\.auth_token="").*?(?="")");
            string token = "";
            if (res.Count() > 0) token = res[0].ToString();
            return token;
        }


        public long MillisecondsTimestamp(DateTime date)
        {
                DateTime baseDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                return (long)(date.ToUniversalTime() - baseDate).TotalMilliseconds;
        }

Đoạn multipart bạn sai dòng này :

{new StringContent("action"), "upload"},

Phải là thế này mới đúng.

{new StringContent("upload"), "action"},

Ngoài ra còn 1 parameter nữa bạn không cho vào ..

{new StringContent("PT1H"), "expiration"},

Bạn cũng lấy giá trị PT1H trong sources nhé, nếu nó không đổi thì điền thẳng PT1H vào khỏi lấy là được.

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites
1 hour ago, Thiên Chi Kiều Nữ said:

Đoạn multipart bạn sai dòng này :


{new StringContent("action"), "upload"},

Phải là thế này mới đúng.


{new StringContent("upload"), "action"},

Ngoài ra còn 1 parameter nữa bạn không cho vào ..


{new StringContent("PT1H"), "expiration"},

Bạn cũng lấy giá trị PT1H trong sources nhé, nếu nó không đổi thì điền thẳng PT1H vào khỏi lấy là được.

Bạn cho mình xin full code chỗ mà không truyền vào "expiration" (Don't autodelete) với.

 {new StringContent("PT1H"), "expiration"}

Do mình muốn chọn "Don't autodelete" nên không truyền vào ''expiration". 

spacer.png

spacer.png

Nhưng lúc thêm thử "expiration" vẫn không được. Vẫn trả về lỗi.

spacer.png

 

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites
1 hour ago, Sunyata said:

Bạn cho mình xin full code chỗ mà không truyền vào "expiration" (Don't autodelete) với.


 {new StringContent("PT1H"), "expiration"}

Do mình muốn chọn "Don't autodelete" nên không truyền vào ''expiration". 

spacer.png

spacer.png

Nhưng lúc thêm thử "expiration" vẫn không được. Vẫn trả về lỗi.

spacer.png

 

Mỵ làm bình thường mà .. cái expiration này bạn tự cho vào cũng đc.. nó mặc định có mấy cái value PT15M, PT30M như bạn thấy đó, khỏi cần get

Bạn kiểm tra token ra đúng chứ ? 

Mỵ thấy cái link post upload của bạn bị sai kìa .. imgbb.com/json mới đúng

var html2 = http.Post("https://im.ge/json", dataPost2);

 

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites
1 hour ago, Thiên Chi Kiều Nữ said:

Mỵ làm bình thường mà .. cái expiration này bạn tự cho vào cũng đc.. nó mặc định có mấy cái value PT15M, PT30M như bạn thấy đó, khỏi cần get

Bạn kiểm tra token ra đúng chứ ? 

Mỵ thấy cái link post upload của bạn bị sai kìa .. imgbb.com/json mới đúng


var html2 = http.Post("https://im.ge/json", dataPost2);

 

U là trời :a16:già cả nên mắt mờ hết rồi, cảm ơn nhé Mỵ!

Chia sẻ bài đăng này


Link tới bài viết
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Trả lời chủ đề này...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...