HttpRequest Aplikacja Czat

Podobne dokumenty
Programowanie telefonów z Windows Phone 7, cz. 4

Gatesms.eu Mobilne Rozwiązania dla biznesu

Programowanie telefonów z Windows Phone 7, cz. 2

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

PHP: bloki kodu, tablice, obiekty i formularze

Comarch e-sklep Sync. wersja

Wybrane działy Informatyki Stosowanej

Orange Send MMS. Autoryzacja. Metoda HTTP. Parametry wywołania. API wyślij MMS dostarcza wiadomości MMS. Basic POST

Dokumentacja Techniczna 1.2. Webtoken MT. Uruchomienie subskrybcji MT poprzez serwis WWW

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Leszek Stasiak Zastosowanie technologii LINQ w

Wykład 03 JavaScript. Michał Drabik

Laboratorium 10 - Web Services

SOAP. Autor: Piotr Sobczak

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Zaawansowane aplikacje internetowe

akademia androida Składowanie danych część VI

Podstawy programowania w języku JavaScript

XML w.net. Dominik Baś nr alb Wrocław, 29 maja 2007

Tworzenie i wykorzystanie usług

Wykorzystywanie parsera DOM w programach Java i PL/SQL

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Specyfikacja wysyłek marketingowych v1.10

Dostęp do baz danych w ASP.NET.

Specyfikacja interfejsów usług Jednolitego Pliku Kontrolnego

Katalog książek cz. 3: Web Service

Zaawansowane aplikacje WWW - laboratorium

Ogólnopolskie Repozytorium Prac Dyplomowych

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

Aplikacje webowe z wykorzystaniem Node.js oraz Express

XML extensible Markup Language. część 5

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Technologie internetowe

Komunikator internetowy w C#

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

Pobieranie argumentów wiersza polecenia

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5.

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Server setup. #include <SPI.h> #include <Ethernet.h> boolean incoming = 0;

Podstawy i języki programowania

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Aplikacje WWW - laboratorium

Specyfikacja techniczna. mprofi Interfejs API

rk HTML 4 a 5 różnice

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Kompilacja i kompilatory

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

namespace HostedReceiver { public class Receiver: IConfigureThisEndpoint, AsA_Server {

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Dokumentacja techniczna API systemu SimPay.pl

Katalog książek cz. 2

akademia androida Http i AsyncTask część VII

Wykład 6 Dziedziczenie cd., pliki

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Udostępnianie obrazu z kamer Sanyo HD na stronach WWW PORADNIK

Zmienne i stałe w PHP

Analizując żądania za pomocą narzędzi developerskich można odczytać listę preferowanych języków, jak na poniższym przykładzie.

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Specyfikacja API Runtime BAS 3.0

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Część 4 życie programu

POLITECHNIKA POZNAŃSKA. Oprogramowanie dla telefonów z systemem Windows Phone 8 obsługujących technologię NFC do sprawdzania listy obecności.

Podstawy technologii WWW

Komponenty sterowane komunikatami

Aplikacje WWW - laboratorium

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Ministerstwo Finansów

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Spring Web MVC, Spring DI

AIUI WebAPI V1 {#3-1} {#3-2} {#3-2-2} AIUI. Github WebAPI. 1. APPID CurTime, Param CheckSum HTTP. 3. http https. Http Request Header

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

XML-RPC: Zdalne wykonywanie procedur

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Wstęp do testów integracji systemów

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:

Quiz Aplikacja internetowa

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Transkrypt:

HttpRequest Aplikacja Czat Za pomocą obiektu HttpRequest można wykonywać żądania http z aplikacji windows phone. W pierwszej kolejności należy utworzyć aplikację i dodać do niej dwie kontrolki: Buton i TextBlock, tak jak ma to miejsce na obrazku poniżej i nazwać je następująco btest, textblock. Następnie, klikając na button 2-krotnie utworzyć handler kliknięcia. W body metody umieścić kod: private void btest_click(object sender, RoutedEventArgs e) string url = @"http://iisi.pcz.pl/~pnajgebauer/pum/test.php"; try var request = HttpWebRequest.Create(url); var result = (IAsyncResult)request.BeginGetResponse(ResponseCallback, request); catch (WebException exception) MessageBox.Show("Wyjątek"); Metoda rozpocznie wykonywanie żądanie pod adres http://iisi.pcz.pl/~pnajgebauer/pum/test.php Natomiast odpowiedz z serwera przyjdzie asynchronicznie i wywoła metodę ResponseCallback, którą należy dodać do klasy.

private void ResponseCallback(IAsyncResult result) var request = (HttpWebRequest)result.AsyncState; var response = request.endgetresponse(result); using (var stream = response.getresponsestream()) using (var reader = new StreamReader(stream)) var contents = reader.readtoend(); Dispatcher.BeginInvoke(() => textblock.text = contents; ); Po wywołaniu metody uzyskiwany jest dostęp do strumienia z zawartością zwróconą z serwera www. Następnie zawartość jest umieszczana w kontrolce textblock. Niemożliwe jest bezpośrednie odwołanie do kontrolki textblock ponieważ działają one na różnych wątkach dlatego trzeba skorzystać z Dispatcher.BeginInvoke. Przesyłanie Parametrów. Metoda GET przekazuje parametry po znaku? jako pary nazwa=wartość w adresie URL żądanie oddzielając je znakiem & między kolejnymi parametrami. Metoda POST przesyła parametry w ciele żądania. W naszym wypadku również muszą być enkodowane jak w GET. Dodajemy kolejny buton bposttest w raz z jego handlerem.

private void bposttest_click(object sender, RoutedEventArgs e) string url = @"http://iisi.pcz.pl/~pnajgebauer/pum/posttest.php"; try var request = HttpWebRequest.Create(url); request.contenttype = "application/x-www-form-urlencoded"; request.method = "POST"; request.begingetrequeststream(new AsyncCallback(RequestStreamCallback), request); catch (WebException exception) MessageBox.Show("Wyjątek"); W tym przypadku asynchronicznie jest oczekiwanie na utworzenie strumienia danych do wysłania na serwer. Gdy strumień jest gotowy wywoływany jest handler RequestStreamCallback, w którym zostaną przesłane nasze parametry na serwer. private void RequestStreamCallback(IAsyncResult asynchronousresult) HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; // End the operation Stream poststream = request.endgetrequeststream(asynchronousresult); string arg1 = "Argument1+-?&&"; string arg2 = "Argument2"; // Convert the string into a byte array. string data = HttpUtility.UrlEncode("arg1") + '=' + HttpUtility.UrlEncode(arg1) + '&' + HttpUtility.UrlEncode("arg2") + '=' + HttpUtility.UrlEncode(arg2); byte[] bytearray = Encoding.UTF8.GetBytes(data); // Write to the request stream. poststream.write(bytearray, 0, bytearray.length); poststream.close(); // Start the asynchronous operation to get the response request.begingetresponse(new AsyncCallback(ResponseCallback), request); nasze argumenty zanim zostaną przesłane muszą zostać encodowane tak aby pozbyć się znaków specjalnych ( +,?, =, & itp ), a następnie zamienione na formę binarną. Do encodowania parametrów służy metoda HttpUtility.UrlEncode.

Zadanie 1. Wykonać aplikację imitującą czat, która: Będzie pobierać wiadomości z strony http://iisi.pcz.pl/~pnajgebauer/pum/data.xml, sprasuje listę wiadomości i odpowiednio wyświetli w kontrolce. Format pliku. <?xml version="1.0" standalone="yes"?> <messages> <message user="usertest" date="28/04 11:47:11">TextTest</message> <message user="pat" date="28/04 12:28:28">Wiadomość</message> </messages> Serwer przechowuje jedynie 10 ostatnich wiadomości. Ponadto, nazwa użytkownika user jest obcinana do 10 znaków, a wiadomość message do 40 znaków. Do prasowania XML-a można użyć obiektu XmlReader poniżej przykładowy fragment. var reader = XmlReader.Create(new StringReader(data)); while (reader.read()) switch (reader.nodetype) case XmlNodeType.Element: Console.WriteLine("Start Element 0", reader.name); case XmlNodeType.Text: Console.WriteLine("Text Node: 0", reader.value); case XmlNodeType.EndElement: Console.WriteLine("End Element 0", reader.name); default: Console.WriteLine("Other node 0 with value 1", reader.nodetype, reader.value); Zadanie 2. Do aplikacji dodać funkcje dodawania nowego wpisu. Pod adresem http://iisi.pcz.pl/~pnajgebauer/pum/add.php znajduje się skrypt dodający kolejne wpisy czatu. Przyjmuje przesłane metodą POST parametry: user nazwa użytkownika (obcina powyżej 10 znaków), message wiadomość (obcina powyżej 40 znaków). Server zwraca:

ok jeśli wpis został dodany. no params jeśli brakuje parametrów. Pozostałe oznaczają niepowodzenie.