[Silverlight] DownloadStringAsync Method

0

private void btn_Click(object sender, RoutedEventArgs e)
{
WebClient rss = new WebClient();
rss.DownloadStringCompleted += new DownloadStringCompletedEventHandler(rss_DownloadStringCompleted);
rss.DownloadStringAsync(new Uri("http://sport.wp.pl/rss.xml", UriKind.RelativeOrAbsolute));
}
private void rss_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
/// Code
}
}
else
btn.Content = e.Error.Message;
}
nie wchodzi mi do ifa ( e.Error nie jest nullem czyli cos jest nie tak, nie pobiera mi danych ze strony), wie ktos moze o co biega ;/
z gory dzieki

0

Po pierwsze masz za dużo nawiasów zamykających (}).

Po drugie wg. mnie dostajesz błąd (być może Message jest pusty). Problem jest w tym, że z aplikacji klienckiej próbujesz się dostać do strony z której nie została uruchomiona aplikacja Silverlight. Poza tym flashowy plik crossdomain.xml (który jest sprawdzany także przez SL) zabrania dostępu z domen innych niż wp'owskie.

Co możesz w takim wypadku zrobić? Wysłać żądanie do strony, którą masz skojarzoną z kontrolką SL i już po stronie serwera pobrać interesujący cię RSS i zwrócić go do SL'a

0

czesc, a moglbys to szkicowo napisac w kodzie, jak pisalem w Javie to nie bylo zadnych problemow ;/ ?

0

Nie wiem jak w Javie bo aż tak jej nie znam.

Co do tego jak to zrobić to musisz w jakiś sposób dostać się z Silverlighta do serwera. Możesz to zrobić za pomocą WCF'a lub jeśli używasz SL3 .NET RIA services. Wtedy na serwerze wykonujesz ten sam kod co masz (tylko raczej synchronicznie) i zwracasz do kontrolki SL. Trudno tu pokazywać kod, bo to trochę roboty z tym będzie - szczególnie napisanie Usługi sieciowej a potem jej wołanie z SL'a.

Proponuję przed rozpoczęciem pisania poczytać o WCF i użyciu go z SL'a.

0

ok dzieki ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1