【发布时间】: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