检索网站内容并在ASP.NET MVC 4中返回
本文关键字:MVC NET 返回 ASP 网站 检索 | 更新日期: 2023-09-27 18:00:31
我有两个服务器。一个是私有服务器,我不希望用户直接访问它,另一个是公共可以访问的服务器。我可以通过以下URL访问我的私人服务器:http://xxx.xx.xxx.xxx/
我想做的是创建某种"代理",只用于我的私人服务器。我的想法是:http://www.domain.com/server/path/here/something此页面应显示的内容http://xxx.xx.xxx.xxx/path/here/something
我已经完成了这项工作,但我能使其工作的唯一方法是将内容作为字符串返回,然后浏览器将解释HTML。这适用于返回HTML内容的页面,但如果我想直接访问.gif或任何类型的文件,它就不起作用(当然)。
这是我目前拥有的代码:
public string Index(string url)
{
string uri = "http://xxx.xx.xxx.xxx/" + url;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader responseStream = new StreamReader(response.GetResponseStream());
string resultado = responseStream.ReadToEnd();
return resultado;
}
如何更改代码,使其适用于任何文件?
您可以检查响应内容类型,并在此基础上执行所需操作。您需要更改操作以返回ActionResult
而不是字符串。
if(response.ContentType.Equals("text/html"))
{
//show html stuff
return Content(resultado);
}
else if(response.ContentType.Contains("image/"))
{
var ms = new MemoryStream();
responseStream.BaseStream.CopyTo(ms);
var imageBytes = ms.ToArray();
return File(imageBytes, response.ContentType);
}
你必须编写一个系统,从resultado中读取你的html或图像,并根据它做一些事情。此外,你还需要控制你的Url。