Jump to content
Đăng nhập để theo dõi  
Admin

Hướng dẫn cơ bản về thư viện xNet trong CSharp

Recommended Posts

Xin chào các bạn. Hôm nay mình giới thiệu tới các bạn thư viện xNet do ông thần người Nga nào đó viết :") . Trước hết ta hiểu nôm na việc sử dụng thư viện xNet là dùng để giả lập request từ người dùng lên sever qua các method : GET, POST, PUT, DELETE. Ở bài viết này, mình sử dụng Visual studio 2017 pro và xNet version 3.3.0 (Link download thư viện xNet chính chủ) hoặc tải trực tiếp thư viện dll tại đây :

Quote


Để bắt đầu với thư viện xNet, các bạn thêm thư viện cho code bằng cách :

using xNet;

Chú ý : Các request gửi đi nên thêm vào User Agent nhé.

Ví dụ thứ 1 về gửi request GET tới trang bất kỳ để lấy về mã nguồn HTML của trang đó : để bắt đầu gửi 1 request ta sử dụng Httprequest chúng ta có thể set các giá trị mặc định cần thiết hoặc không cần cho request ví dụ như : header, watting time, address direct.... Ví dụ mẫu :

using (var request = new HttpRequest())
{
  request.UserAgent = "MeoMup";
  string content = request.Get("Địa chỉ web").ToString();
}

Ví dụ đơn giản về gửi 1 request tới trang web và lấy dữ liệu html của trang đó về, ta sử phương thức GET:

using (var request = new HttpRequest()) 
{ 
    request.UserAgent = "MeoMup";
    string content = request.Get("https://teamcodedao.com/forum/").ToString();
}

Ví dụ thứ 2 về gửi 1 request POST tới trang web (thường dùng để đăng nhập, đăng bài, post ảnh..vv..v) :

Cách 1 : 

using (var request = new HttpRequest()) 
{ 
    request.UserAgent = "MeoMup";
    MultipartContent Data = new MultipartContent()
    {
        {new StringContent("Admin"),"username" },
        {new StringContent("123456"),"password" }
    };
    string content = request.Post("https://teamcodedao.com/forum/",DataToSend).ToString();
}

Cách 2 :

using (var request = new HttpRequest()) 
{ 
    request.UserAgent = "MeoMup";
    request.AddParam("username","Admin").AddParam("password","123456");
    string content = request.Post("https://teamcodedao.com/forum/").ToString();
}

Cách 3 : 

using (var request = new HttpRequest()) 
{ 
    request.UserAgent = "MeoMup";
    var reqParams = new RequestParams();
    reqParams["username"] = "Admin";
    reqParams["password"] = "123456";
    string content = request.Post("https://teamcodedao.com/forum/",reqParams).ToString();
}

Cách 4 :

using (var request = new HttpRequest()) 
{ 
    request.UserAgent = "MeoMup";
    request .AddField("username", "Admin") .AddField("password", "123456") ;
    string content = request.Post("https://teamcodedao.com/forum/").ToString();
}

Cách 5 :

using (var request = new HttpRequest()) 
{ 
    request.UserAgent = "MeoMup";
    string DataPost = "key1=value1&key2=value2&key3=value3";
    string Content_Type = "application/x-www-form-urlencoded"; // Tùy yêu cầu content type mà bạn thay đổi nhé
    string content = request.Post("https://teamcodedao.com/forum/",DataToSend,Content_Type).ToString();
}

 

Ví dụ thứ 3 về gửi request kèm Cookies : thường thì sau khi login thành công 1 trang web, sever sẽ trả về cho chúng ta một thứ để biết đấy là chúng ta, cái thứ đó gọi là cookies. Để lấy cookies sau khi POST login trang web nào đó thành công ta sử dụng mẫu code như sau :

using (var request = new HttpRequest()) 
{ 
    request.UserAgent = "MeoMup";
    MultipartContent Data = new MultipartContent()
    {
        {new StringContent("Admin"),"username" },
        {new StringContent("123456"),"password" },
    };
    HttpResponse response = request.Post("https://meomup.000webhostapp.com/forum",DataToSend);
    string content = response .ToString();
    string cookieLogin = response.Cookies.ToString();
}

Đó là bước lưu lại cookies sau khi đăng nhập thành công, cookies lưu về có dạng name1=value1,name2=value2.... Lần tới muốn request lại ta chỉ việc nạp cookie vào như sau :

HttpRequest request = new HttpRequest();
request.UserAgent = "MeoMup";
request.Cookies = new CookieDictionary()
{
    {"name1","value1"},
    {"name2","value2"}
}
// ở đây ta có bao nhiêu name, value thì ta nạp đủ bấy nhiêu vào nhé. Giờ ta chỉ viêc request tới trang chủ thôi
string htmlContent = request.get("trang chủ").ToString();

Ví dụ về thay đổi phương thức request trong xNet (xnet request method) : ngoài 2 phương thức thông thường là GET và POST, chúng ta còn có các method khác như PUT, DELETE , chúng ta thay đổi method như sau :

HttpRequest request = new HttpRequest()
{
    UserAgent = "MeoMup",
    Cookies = new CookieDictionary(),
};
string DataPost = "";
HttpContent Data2send = new StringContent(DataPost);
HttpResponse response = request.Raw(HttpMethod.PUT, "https://www.teamcodedao.com", Data2send); // tương tự với method khác
MessageBox.Show(response.ToString());
request.Dispose();

Cơ bản là thế :") . Trong khi request các bạn có thể còn gặp nhiều trường hợp hoặc vấn đề khác phát sinh, các bạn có thể reply tại đây mình biết thì sẽ giải  thích cho các bạn . Good Luck !!!

  • Like 3
  • Yêu thích 2

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


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

Ví dụ tiếp theo về xNet đó là add giá trị header vào gửi kèm cùng request GET hoặc POST

using (var request = new HttpRequest("https://teamcodedao.com/forum"))
{
    request.Cookies = new CookieDictionary()
    {
        {"hash", "yrttsumi"},
        {"super-hash", "df56ghd"}
    };
    request[HttpHeader.DNT] = "1";
    request["X-Secret-Param"] = "UFO";
    request.AddHeader("X-Tmp-Secret-Param", "42");
    request.AddHeader(HttpHeader.Referer, "https://teamcodedao.com/forum");
    request.Get("/");
}

Ví dụ về add Proxy hoặc Socks cho xNet . Cái này chắc nhiều bạn làm về MMO thì chắc cần nhỉ :)

Nội dung ẩn

    Bạn cần Reaction hoặc trả lời chủ đề này để thấy nội dung bị ẩn.

Ví dụ tiếp theo về xNet đó là lấy giá trị header :

Nội dung ẩn

    Bạn cần Reaction hoặc trả lời chủ đề này để thấy nội dung bị ẩn.

 

  • Like 7
  • Sad 1

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


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

Sơ sài quá.

Bài này chỉ hướng dẫn cơ bản thôi bác :a24:các phương thức GET, POST và cookies được sử dụng liên tục là chính nên iêm cũng chỉ giới thiệu cấu trúc lệnh và chức năng đó của thư viện thôi. Còn muốn tìm hiểu sâu, kỹ về thư viện xNet thì phải có 1 bài chi tiết nâng cao chứ, để mà nói sâu cho các bạn mới thì họ lại chưa cần tới.

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


Link tới bài viết
Share on other sites
On 21/3/2019 at 18:33, quancap2591 said:

admin chuyên C# hả, kết bạn chỉ giáo tui vài thứ nha

bạn cần tìm hiểu thêm gì có thể post tại đây ,mình biết thì sẽ rep cho bạn cùng học hỏi :3 :c18:

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


Link tới bài viết
Share on other sites
On 29/5/2019 at 15:34, Cường Đỗ said:

ad cho hỏi muốn request phương thức PATCH trong xNet thì làm sao ạ?

:c09: đây bạn nhé

 

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


Link tới bài viết
Share on other sites
On 27/1/2019 at 12:38, Admin said:

Ví dụ tiếp theo về xNet đó là add giá trị header vào gửi kèm cùng request GET hoặc POST


using (var request = new HttpRequest("https://teamcodedao.com/forum"))
{
    request.Cookies = new CookieDictionary()
    {
        {"hash", "yrttsumi"},
        {"super-hash", "df56ghd"}
    };
    request[HttpHeader.DNT] = "1";
    request["X-Secret-Param"] = "UFO";
    request.AddHeader("X-Tmp-Secret-Param", "42");
    request.AddHeader(HttpHeader.Referer, "https://teamcodedao.com/forum");
    request.Get("/");
}

Ví dụ về add Proxy hoặc Socks cho xNet . Cái này chắc nhiều bạn làm về MMO thì chắc cần nhỉ :)

Nội dung ẩn

  • Bạn cần Reaction hoặc trả lời chủ đề này để thấy nội dung bị ẩn.

chạy thông qua ssh thì sao bạn 

 

  • Like 1

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


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

E dùng post để reg tài khoản. Reg được vài cái thì nhảy ra lỗi 403. Trong khi đó reg trên trình duyệt vẫn bình thường? Mọi người chỉ cách e với ạ. E cảm ơn!

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.

Đăng nhập để theo dõi  

×
×
  • Create New...