C# i HTTP

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Pytanie 1: Jak wysłać żądanie HTTP(S) do serwera w C#? Zależy mi na tym, aby był dostęp do statusu odpowiedzi, dało się pobrać dane z headera, i, co ważne aby można było wysłać również żądanie HTTPS. Jakby ktoś miał jeszcze jakiś tutorial na temat używania sieci w C# to by było super.
Pytanie 2: Jak dołączyć do projektu C# zewnętrze biblioteki, np. Tidy.NET?
Pytanie 3: Jak sparsować dokument XML i JSON w C#?
Pytanie 4: Jak utworzyć coś w rodzaju swojego header file z C++ w którym bym miał swoje metody do wykorzystania w różnych plikach *.cs ale w C# (nie chodzi mi o importowanie headerów z C++ do C#)
Pytanie 5: Jak poprawnie definiować swoje metody w Windows Forms
Pytanie 6 (ostatnie :D): W C# jest mnóstwo typów, i np. taka klasa HttpClient ma metodę która wysyła żądanie GET (nie pamiętam jak się nazywa) zwraca typ którego składową jest Status. Myślę sobie: "super, mam dostęp do statusu", ale co się okazuje? Że ma ona jakiś dziwny typ i nie wiem co z tym zrobić. Tak samo nie wiem jak dostać się do ciała odpowiedzi. Ogólnie chodzi mi o zgodność typów. Jest ich mnóstwo i nie wiem jak je konwertować. W C++ tego nie ma więc proszę o zrozumienie.

Wiem że tego dużo, ale przenoszę się z C++ do C# i po prostu chcę "przepisać" swój program w C++ który właśnie ma wysyłać żądania HTTP(S) (niestety nie działa bo biblioteka nie obsługuje HTTPS)

PA
PA
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 3 lata
  • Postów:288
1

Pytanie 1:
Zapewne poprzez jakąś bibliotekę

Pytanie 2:
Klikasz prawym przyciskiem myszy na solucję, wchodzisz w NuGet Manager i szukasz zewnętrznych bibliotek, po czym dajesz "install". Innym sposobem jest edycja pliku cs.proj (prawym na solucję -> edytuj plik cs.proj) i dodaniu pakietu ręcznie.

Pytanie 3:
https://docs.microsoft.com/pl-pl/dotnet/api/system.xml.linq.xelement.parse?view=netcore-3.1
https://stackoverflow.com/questions/6620165/how-can-i-parse-json-with-c

Pytanie 5:
modyfikator nazwa metody (ewentualne parametry)
{
ciało metody
}

Pytanie 6:
deklarujesz zmienną jako typ var i to, co jest przypisywane do zmiennej dostosowuje się pod typ zwracanego obiektu

edytowany 11x, ostatnio: pavarotti
Zobacz pozostałe 5 komentarzy
PA
Tu masz klasę XMLElement -> https://docs.microsoft.com/pl-pl/dotnet/api/system.xml.xmlelement?view=netcore-3.1, ja tam dawno z XML się nie bawiłem więc musisz gdzieś tu pogmerać, ale z tego co pamiętam to tu coś z XMLami działałem. Tam po lewej znalazłem coś takiego https://docs.microsoft.com/pl-pl/dotnet/api/system.xml.xmlparsercontext?view=netcore-3.1, ale osobiście z tego nie korzystałem
Kamil B
Ok, dzięki z pomoc. Jakoś sobię poradzę.
PA
szukaj na dokumentacjach Microsoftu - są serio dobre, ewentualnie SO, tam też jest wszystko
PA
tu masz jeszcze takie coś do wyciągania danych z XML - https://docs.microsoft.com/en-us/troubleshoot/dotnet/csharp/read-xml-data-from-url
Kamil B
Super, wielkie dzięki
AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
0

Ok, a co do parsera XML to w tym linku nic nie znalazłem. Chodzi mi o parsowanie a nie formatowanie. Chcę z dokumentu XML wyciągnąć dane. — Kamil B 20 minut temu

Są dwa (i pół) ujęcia.

  • Jak w C# myślimy "parser XML" tzn nie mamy jakiegoś wymogu, co w nim jest. Dostajemy drzewo elementów i/lub zdarzenia, i po stringach "radź sobie sam"
  • jak wiemy dobrze, czego się spodziewać, przygotowujemy klasy do których dane mają pasować, i to już się nazywa deserializacja. O wiele wygodniejsze i type-safe, używa się klasy XmlSerializer
  • jak XML jest naprawdę profesjonalny, m.in. ma ścisłą schemę, to te klasy można wygenerować automatycznie xsd

Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 3 godziny
  • Postów:5132
0

Jako że ta opcja nie została podana

1 - może RestSharp? dość przyjemny.

edytowany 1x, ostatnio: WeiXiao
Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 19 godzin
1

Pytanie 1: Jak wysłać żądanie HTTP(S) do serwera w C#? Zależy mi na tym, aby był dostęp do statusu odpowiedzi, dało się pobrać dane z headera, i, co ważne aby można było wysłać również żądanie HTTPS. Jakby ktoś miał jeszcze jakiś tutorial na temat używania sieci w C# to by było super.

HttpClient.

Pytanie 4: Jak utworzyć coś w rodzaju swojego header file z C++ w którym bym miał swoje metody do wykorzystania w różnych plikach *.cs ale w C# (nie chodzi mi o importowanie headerów z C++ do C#)

Nie rozumiem pytania (ale też nie znam się na C++) - zrób sobie klasę ze swoimi metodami i potem w całym swoim programie możesz z niej korzystać. I przestań myśleć o plikach - w C# nie ma (generalnie) znaczenia czy coś jest w jednym pliku czy w dwudziestu.

Pytanie 5: Jak poprawnie definiować swoje metody w Windows Forms

Nie robić za dużo w obsłudze zdarzeń - logikę powinieneś trzymać w oddzielnych klasach.

fasadin
jemu chodzi o wlasny namespace ;) headery w C++ to takie powiedzmy namespace'y
Kamil B
A swoje klasy, to gdzie je definiować? (WinForms)
Ktos
Ja wyznaję zasadę: klasy raczej w oddzielnych plikach, pogrupowane w folderach zgodnie z funkcją - czyli np. foldery typu "Views", "Models", "Repository" itp.
Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Ok, dzięki za pomoc.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.