Loading Likes...
Platforma .NET Framework oferuje wiele klas przeznaczonych do przeprowadzania komunikacji za pomocą standardowych protokołów sieciowych (FTP,IP,HTTP,TCP). Ten wpis dotyczył będzie klasy WebClient, której jedną z wielu możliwości, jest przesyłanie danych formularza. Aby przetestować działanie zapytań wykorzystajmy jakiś serwis do testowania zapytań. Wybrałem httpbin.org.
|
WebClient webClient = new WebClient(); |
Tworzymy kolekcję nazwa-wartość, a następnie wypełniamy ją danymi. Gdy już mamy kolekcję, możemy wywołać metodę UploadValues, odpowiedzialną za przekazywanie danych do formularza HTML
|
var data = new System.Collections.Specialized.NameValueCollection(); data.Add("nazwa","wartosc"); //pola formularza |
|
webClient.UploadValues(adres_url,metoda(np. "POST"),dane_formularza) |
Przykładowy kod wygląda następująco
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
using System; using System.Net; using System.Text; namespace webClient_formularz_wiedza { class Program { static void Main(string[] args) { WebClient webClient = new WebClient(); var data = new System.Collections.Specialized.NameValueCollection(); data.Add("a","Value_a"); data.Add("b","Value_b"); byte[] result = webClient.UploadValues("https://httpbin.org/post", "POST", data); Console.WriteLine(Encoding.UTF8.GetString(result)); Console.ReadKey(); } } } |
W wyniku tego zapytania POST otrzymujemy:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
{ "args": {}, "data": "", "files": {}, "form": { "a": "Value_a", "b": "Value_b" }, "headers": { "Connection": "close", "Content-Length": "19", "Content-Type": "application/x-www-form-urlencoded", "Expect": "100-continue", "Host": "httpbin.org" }, "json": null, "origin": "xx.xx.xxx.xx", "url": "https://httpbin.org/post" } |
Jak można łatwo zauważyć, pola formularza zostały prawidłowo przesłane. Widzimy je w tablicy “form“.
Taki sam efekt można uzyskać za pomocą klasy WebRequest, będziemy mogli wtedy wykorzystać mechanizm ciasteczek(cookies)
Pasjonat informatyki, bloger.
Full-stack Developer
Technologie:
- ASP.NET MVC
- ASP.NET CORE
- Angular 2+