1

基于此处的答案:如何仅检索和解析从 URL 返回的 html?

...我试图从添加基于此处找到的代码开始:http: //msdn.microsoft.com/en-us/library/system.net.http.httpclient.aspx

...即通过将其添加到 \App_Code\Functions.cshtml:

@functions
{
    public static string GetUrlHtml(string dynamicUrl)
    {
        HttpClient client = new HttpClient();
        string body = await client.GetStringAsync(dynamicUrl);
    // parse it using HTML Agility Pack? (http://htmlagilitypack.codeplex.com/)
    }
}

HttpClient 无法识别,并且不提供“解决”上下文菜单项。输入后 Intellisense 不提供“Http”:

@using System.Net.

HttpClient 真的对我不可用吗?如果是这样,我可以得到什么作为安慰奖?像这样使用 WebClient 是我的最佳选择:

WebClient wc = new WebClient();
string body = wc.DownloadString(dynamicUrl);
// parse it with html agility pack

...或者,如http://www.4guysfromrolla.com/articles/011211-1.aspx#postadlink所示,我可以使用 HTML Agility Pack 中的 webGet 类:

var webGet = new HtmlWeb();
var document = webGet.Load(dynamicUrl);

有人对哪个选项最好有任何可支持的意见吗?

4

3 回答 3

4

错误的答案是公认的。

这是正确的:

添加到配置

<system.web>
    <compilation>
        <assemblies>
            <add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </assemblies>
    </compilation>
</system.web>
于 2014-03-29T00:41:16.140 回答
3

请确保您有对System.Net.Http.

于 2013-06-06T04:22:17.793 回答
1

安装这个 nuget 包,它将添加适当的引用http://nuget.org/packages/Microsoft.Net.Http/2.0.20710.0

于 2013-06-07T14:49:45.123 回答