首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >窗口8检索HTML内容

窗口8检索HTML内容
EN

Stack Overflow用户
提问于 2014-03-06 21:28:02
回答 1查看 102关注 0票数 0

这是一个从网站检索html内容的简单函数。所以人们可以从中提取数据。我只发现Window 8有http webservice来获取html。只有这样才能找到。如果有人有更好的方法,请分享。

代码语言:javascript
运行
复制
 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“,所以我必须使用await。并且仅在异步函数中用于离开。异步函数仅返回Task<>或void。在那之后,从Task<>到其他格式的转换是如此混乱和混乱。所以我让它返回void并将数据传输到其他全局源。我找不到任何简单的解释如何从任务中获取字符串。所以我用这种方式。

EN

回答 1

Stack Overflow用户

发布于 2014-03-06 21:34:32

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

代码语言:javascript
运行
复制
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();  
}

然而,我会这样说:

代码语言:javascript
运行
复制
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();  
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22225970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档