2013-03-29 1 views
2

что я хочу просто, я хочу прочитать текстовый файл с моего сайта через мое приложение, мне это удалось сделать на C#, но не в приложениях метро, ​​здесь мой код в C#Metro Apps: C#, читать текстовый файл из интернета

WebClient client = new WebClient(); 
Stream stream = client.OpenRead(strURL); 
StreamReader reader = new StreamReader(stream); 
String content = reader.ReadToEnd(); 
return content; 

, кроме приведенного выше кода я также попытался код ниже, но все-таки не удалось

HttpWebRequest request = (HttpWebRequest) 
WebRequest.Create(strURL); 

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

Stream resStream = response.GetResponseStream(); 
string tempString = null; 
int count = 0; 
byte[] buf = new byte[1000]; 
StringBuilder sb = new StringBuilder(); 

do 
{ 
    count = resStream.Read(buf, 0, buf.Length); 
    if (count != 0) 
    { 
    tempString = Encoding.Unicode.GetString(buf, 0, count); 
    sb.Append(tempString); 
    } 
} 
return sb.ToString(); 

Я думаю, что проблема в WebClient и GetResponse(), который не известен в приложениях метро

+2

почему не 'WebClient.DownloadString (URL)'? –

+1

Тип или имя пространства имен «WebClient» не удалось найти, я думаю, что класс WebClient не находится в приложениях metro-ui – nyongrand

+0

Возможный дубликат http://stackoverflow.com/questions/15191984/webclient-alternative-for-windows-8 –

ответ

2

Вы должны быть в состоянии использовать System.Net.Http.HttpClient и HttpResponseMessage, так как они включены в http://msdn.microsoft.com/en-us/library/windows/apps/hh454046.aspx.

Существует пример на http://msdn.microsoft.com/en-us/library/system.net.http.httpclient.aspx:

static async void Main() 
{ 
    try 
    { 
     // Create a New HttpClient object. 
     HttpClient client = new HttpClient(); 

     HttpResponseMessage response = await client.GetAsync("http://www.contoso.com/"); 
     response.EnsureSuccessStatusCode(); 
     string responseBody = await response.Content.ReadAsStringAsync(); 
     // Above three lines can be replaced with new helper method in following line 
     // string body = await client.GetStringAsync(uri); 

     Console.WriteLine(responseBody); 
    } 
    catch(HttpRequestException e) 
    { 
     Console.WriteLine("\nException Caught!"); 
     Console.WriteLine("Message :{0} ",e.Message); 
    } 
} 
+0

Я попробую его с адресом localhost, и я получаю это «Был предоставлен URI недопустимого запроса. URI запроса должен быть либо абсолютным URI, либо BaseAddress должен быть установлен». – nyongrand

+0

ОК, забудьте об этом, я обнаружил ошибку – nyongrand

1
var httpClient = new HttpClient(); 
var text = await httpClient.GetStringAsync(uri); 

завернутых в методе асинхронной конечно

Смежные вопросы