WebClient alternative for windows 8?

前端 未结 1 915
囚心锁ツ
囚心锁ツ 2021-01-13 11:12

I use WebClient to fetch Yahoo data for Windows Phone 8 and Android HttpClient With WebClient I can do

 WebClient client = new WebClient();
            


        
相关标签:
1条回答
  • 2021-01-13 11:24

    You can use HttpClient class, something like this :

    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);
    }
    

    Simpler version would be just :

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

    But if http error occurs GetStringAsync will throw HttpResponseException, and as far I can see there is no http status indicated except in exception message.

    UPDATE: I didn't noticed that you in fact you are trying to read RSS Feed, you don't need HttpClient and XML parser, just use SyndicationFeed class, here is the example :

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

    0 讨论(0)
提交回复
热议问题