kas*_*rhj 1 asp.net-mvc asp.net-mvc-3
我想要一个局部视图,显示一些不受我控制的网站的东西.网站上的数据只能通过HTML获得,因此我只能通过查询网站和解析HTML来检索它.(该网站包含50个元素的列表,我只想要前10个.)现在,来自网站的数据不会经常变化,所以我想我可以每小时检索一次HTML,并显示一个缓存在我的网站上的版本.
如何在ASP.NET MVC 3中完成此操作?
暂时忽略MVC3要求,你应该使用WebClient从网站上获取html.你可以这样做:
var client = new WebClient();
var html = Encoding.UTF8.GetString(client.DownloadData("http://www.somedomain.com"));
Run Code Online (Sandbox Code Playgroud)
如果您需要定制您的请求,我建议您查看HttpWebRequest,HttpWebResponse.既然你可以获取html,你需要考虑你的缓存机制,可能在ASP.NET运行时?
public ActionResult GetHtml()
{
if (HttpRuntime.Cache["html"] == null)
GetHtmlInternal();
return Content((string)HttpRuntime.Cache["html"], "text/html");
}
private void GetHtmlInternal()
{
var html = // get html here.
HttpRuntime.Cache.Insert("html", html, null, DateTime.Now.AddMinutes(60), Cache.NoSlidingExpiration);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1741 次 |
| 最近记录: |