2013-03-03 32 views
5

Ben olayı gönderdikten sonraWebClient alternatif?

WebClient client = new WebClient(); 
    client.DownloadStringCompleted += new  DownloadStringCompletedEventHandler(client_DownloadStringCompleted); 
    client.DownloadStringAsync(url); 

yapabilirsiniz WebClient'a ile Windows Phone 8 ve Android HttpClient Yahoo veri getirmek için WebClient kullanın;

StringReader stream = new StringReader(e.Result) 

    XmlReader reader = XmlReader.Create(stream); 
    reader.ReadToFollowing("yweather:atmosphere"); 
    string humidty = reader.MoveToAttribute("humidity"); 

ancak Windows 8 RT içinde

böyle bir şey yoktur.

nasıl aşağıdaki verileri getirebilir ? Sadece

public async static Task<string> GetHttpResponse(string url) 
{ 
    var request = new HttpRequestMessage(HttpMethod.Get, url); 
    request.Headers.Add("UserAgent", "Windows 8 app client"); 

    var client = new HttpClient(); 
    var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead); 

    if (response.IsSuccessStatusCode) 
     return await response.Content.ReadAsStringAsync(); 
    else 
    throw new Exception("Error connecting to " + url +" ! Status: " + response.StatusCode); 
} 

basit versiyonu olacaktır::>http://weather.yahooapis.com/forecastrss?w=2343732&u=c

+0

"HttpClient" e baktınız mı? –

cevap

8

Sen HttpClient sınıf, böyle bir şey kullanabilirsiniz http hata oluşur

public async static Task<string> GetHttpResponse(string url) 
{ 
    var client = new HttpClient(); 
    return await client.GetStringAsync(url); 
} 

Ama eğer GetStringAsync HttpResponseException fırlatır ve bildiğim kadarıyla istisna mesaj dışında herhangi bir http durumu belirtildiğini görebilir.

GÜNCELLEME:

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh452994.aspx

: Sana aslında sen RSS Feed okumaya çalışıyorum ki, sadece SyndicationFeed sınıfını kullanın, HttpClient ve XML ayrıştırıcı gerekmez fark etmedi, burada örnek
+0

Veya 'client istemini kullanın.GetStringASync' ... durum kodunu kendiniz kontrol etmeniz gerekmiyor. –

+0

Başarısız olursa (WebException) GetStringASync'in istisna atacağını varsayar mıyım? MSDN belgelerinde bu –

+0

hakkında bir şey yok, GetStringAsync tarafından döndürülen görev hata olacak. Daha iyi belgelenmiş olması gerektiğine katılıyorum. –