C# 交叉请求未正确返回文件
我想通过代理脚本将查询发送到后端服务器。但它不能正确返回文件C# 交叉请求未正确返回文件,c#,asp.net,asp.net-mvc,httpwebrequest,C#,Asp.net,Asp.net Mvc,Httpwebrequest,我想通过代理脚本将查询发送到后端服务器。但它不能正确返回文件 public class HttpWebRequestRunner : IWebRequestRunner { public HttpWebResponse Run(string backendUri) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(backendUri); HttpWebResponse re
public class HttpWebRequestRunner : IWebRequestRunner
{
public HttpWebResponse Run(string backendUri)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(backendUri);
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
return response;
}
}
我的后端服务器关闭到internet,所以我将参数发送到Asp.NETMVC应用程序。并将请求发送到后端服务器
后端服务器正在为此请求返回文件:http://10.0.2.1/Employee/CV/1445
在我的mvc控制器中,我使用:
public class PersonController : Controller
{
public ActionResult GetCv(int id)
{
HttpWebResponse response = new HttpWebResponse();
HttpWebResponse webResponse = response.run("http://10.0.2.1/Employee/CV/1445");
context.HttpContext.Response.ContentType = wbResponse.ContentType;
webResponse.GetResponseStream().CopyTo(context.HttpContext.Response.OutputStream);
// write result...
}
}
现在
如果我从浏览器向后端发送请求,则此urlhttp://10.0.2.1/Employee/CV/1445
它返回1445.pdf文件
但是如果我像这样通过prox应用程序发送请求http://localhost:22414/Person/GetCv/1445
这将返回一个名为file的文件,但不返回pdf扩展名。您还需要中继
内容配置
HTTP头。头信息中包含文件名<代码>webResponse.Headers[“内容处置”]。所以你必须这样使用:
context.HttpContext.Response.Headers.Set(
"Content-Disposition",
webResponse.Headers.Get("Content-Disposition"));
我已经编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。