【问题标题】:How can I use HttpClient in my .NET Framework 4.5 app/site?如何在我的 .NET Framework 4.5 应用程序/站点中使用 HttpClient?
【发布时间】:2013-06-04 04:06:48
【问题描述】:

根据这里的答案:How can I retrieve and parse just the html returned from an URL?

...我正在尝试根据此处找到的代码添加代码: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);

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

【问题讨论】:

  • 您是否尝试从 Razor 视图发出 HTTP 请求?为什么?
  • 查看参考文献,你有System.Net.Http吗?
  • 为什么不呢?我喜欢剃刀。
  • 嗯,这是一个视图。这样的逻辑应该在模型或控制器中。
  • 我没有使用 MVC;此代码位于函数 cshtml 文件中。我认为 MVC 对这个网站来说太过分了。太抽象了。

标签: asp.net http razor asp.net-4.5 dotnet-httpclient


【解决方案1】:

错误的答案是被接受的。

这是正确的:

添加到配置中

<system.web>
    <compilation>
        <assemblies>
            <add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </assemblies>
    </compilation>
</system.web>

【讨论】:

  • 谢谢。这行得通。但是&lt;assemblies&gt;标签需要在&lt;compilation&gt;标签内。
【解决方案2】:

请确保您有对System.Net.Http 的程序集引用。

【讨论】:

  • 我可以在 .cshtml 文件中添加:@using System.Net。 ...但是“Http”不是 Intellisense 然后提供的值之一。而且这个网站项目(Razor 2)中没有“参考”子文件夹,就像“普通”或桌面应用程序中一样,所以我不知道如何添加 System.Net.Http。实际上,我会尝试 Darrel Miller 的建议。
【解决方案3】:

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

【讨论】:

  • 我以为 .NET 4.5 直接包含这个 dll?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 2021-12-18
相关资源
最近更新 更多