C# 窗口8检索HTML内容

C# 窗口8检索HTML内容,c#,windows-8,httpwebresponse,C#,Windows 8,Httpwebresponse,下面是一个从网站检索html内容的简单函数。所以人们可以从中提取数据。 我只发现windows8有httpwebservice来获取html。只找到了这条路。如果有人有更好的方法请分享 protected override void OnNavigatedTo(NavigationEventArgs e) { gethtml("URL"); } public async void ge

下面是一个从网站检索html内容的简单函数。所以人们可以从中提取数据。 我只发现windows8有httpwebservice来获取html。只找到了这条路。如果有人有更好的方法请分享

 protected  override void OnNavigatedTo(NavigationEventArgs e)
            {

                gethtml("URL");
            }

            public async void gethtml(string URL)
            {
                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);
                WebResponse myResponse = await myRequest.GetResponseAsync();
                StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
                mainTxtBox.Text = sr.ReadToEnd();  
            }
因为windows8只有httpwebrequest只有“GetResponseAsync”,所以我必须使用wait。并且只用于异步函数中的away。异步函数仅返回Task或void。在那之后,从任务到其他格式的转换是如此的混乱和混乱。所以我让它返回void并将数据传输到其他全局源。
我找不到任何简单的解释如何从任务中获取字符串。所以我使用这种方法。

您的
gethtml
应该返回
Task
而不是
void
。只有异步事件处理程序才能安全返回
void

protected async override void OnNavigatedTo(NavigationEventArgs e)
{
    await gethtml("URL");
}

public async Task gethtml(string URL)
{
    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);
    WebResponse myResponse = await myRequest.GetResponseAsync();
    StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
    mainTxtBox.Text = sr.ReadToEnd();  
}
不过,我会这样说:

protected async override void OnNavigatedTo(NavigationEventArgs e)
{
    mainTxtBox.Text = await gethtml("URL");
}

public async Task<string> gethtml(string URL)
{
    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);
    WebResponse myResponse = await myRequest.GetResponseAsync();
    StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
    return sr.ReadToEnd();  
}
受保护的异步覆盖无效OnNavigatedTo(NavigationEventArgs e)
{
mainTxtBox.Text=等待获取HTML(“URL”);
}
公共异步任务gethtml(字符串URL)
{
HttpWebRequest myRequest=(HttpWebRequest)WebRequest.Create(URL);
WebResponse myResponse=等待myRequest.GetResponseAsync();
StreamReader sr=新的StreamReader(myResponse.GetResponseStream(),System.Text.Encoding.UTF8);
返回sr.ReadToEnd();
}
+1表示“然而”部分。只能在UI线程中更改UI