Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 2
  • 91

Witam.

jedną z funkcjonalności appa, który tworze w MVC 5 (C#) będzie zebranie danych z innych serwisów, które już chodzą (nie mają API). Dokładnie chodzi o aplikację PingPlotter (https://www.pingplotter.com/). Po zalogowaniu do jakiejś instancji takiej aplikacji wyświetla się tam wykres pokazujący skrótowe statystyki z serwerów.

Zadanie polega na tym: mamy kilka takich instancji aplikacji (ping plotter) zbierające dane z jakiejś puli serwerów. Do każdej z takich instancji trzeba się zalogować (ułatwienie: każda taka instancja ma takie same credentials i o dziwo nie ma walidacji csrf) i po zalogowaniu przechwycić jakiegoś <Div> zawierającego wykres i umieścić go jednej ze stron naszej aplikacji np. jeden pod drugim, czy wszystko jedno.

Dodatkowym warunkiem jest to, żeby te wykresy były life - czyli po wejściu na stronkę wykresy odświeżają się,  dajmy na to, co 1 sekundę albo  co 10 sekund – tak samo ma być w naszej apce, która zbierze te wszystkie wykresy.

W skrócie: Czy istnieje jakiś sposób, żeby wirtualnie zalogować się do innej apki webowej (post), odpalić tego posta, a potem z tego, co zwróci, przechwycić jakiś element DOM i wyświetlić go u siebie zachowując stylowanie źródła i odświeżanie? Czy istnieje jakiś kontener a’la web-browser?

Będę wdzięczny za sugestie.

Pozdrawiam.

PS. Dołączam zrzut z ekranu po zalogowaniu - chodzi o centralny wykres:

 

adamslosarczyk
  • Zapytał
  • @ adamslosarczyk | 02.04.2015
    • 3
    • 0
    • 2
Komentarze (1)
Dzięki wielkie za odpowiedź i jednoczesnei przepraszam za oczywistą nieścisłość, która sie wkradła w pytanie. Chodziło oczywiście żeby zrobic to po stronie serva - cieszę się że Pan domyślił się i przedstawił odpowiedź, o którą mi chodziło.
Skomentował : @ adamslosarczyk ,07.04.2015
  • 3
  • 0
  • 2
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 2

Istnieją co najmniej dwa różne podejścia do realizacji tego zadania - po stronie klienta (używając AJAX  i/lub IFrame) oraz po stronie serwera, gdzie wykorzystać można klasę WebRequest. Poniższy przykład pokazuje, w jaki sposób stworzyć żądanie z poświadczeniami oraz skonstruować obiekt odpowiedzi:

WebRequest request = (HttpWebRequest) WebRequest.Create("https://appURL");
request.Credentials = new NetworkCredential("Username", "Password");
var response = request.GetResponse();


Za pomocą klasy WebResponse możemy otrzymać strumień odpowiedzi, z którego wybierzemy potrzebne elementy DOM. Do wykonania żądania typu POST należy ustawić właściwość Method na "POST" oraz dodać do strumienia żądania (uzyskanego metodą GetRequestStream) dane.

  • Odpowiedział
  • @ | 07.04.2015
  • TRENER ALTKOM AKADEMII