2015-01-13 6 views
0

프록시 스크립트를 통해 내 백엔드 서버에 쿼리를 보내려고합니다. 그러나 파일을 올바르게 반환하지는 않습니다.교차 요청이 파일을 올바르게 반환하지 않습니다.

public class HttpWebRequestRunner : IWebRequestRunner 
{ 
    public HttpWebResponse Run(string backendUri) 
    { 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(backendUri); 

     HttpWebResponse response = (HttpWebResponse) request.GetResponse(); 

     return response; 
    } 
} 

내 백엔드 서버가 인터넷에 연결되어 있지 않아 매개 변수를 내 Asp.Net 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... 
     }  
    } 

URL을 http://10.0.2.1/Employee/CV/1445 그것을 반환 http://10.0.2.1/Employee/CV/1445

Inmy의 MVC 컨트롤러 I이 사용 1445.pdf 파일

하지만 http://localhost:22414/Person/GetCv/1445 과 같은 프록시 애플리케이션을 통해 요청을 보내면 파일이지만 pdf 확장자가 아닌 파일을 반환합니다.

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

1

파일 이름은 헤더 정보에 있습니다. webResponse.Headers["Content-Disposition"]. 따라서 다음과 같이 사용해야합니다.

context.HttpContext.Response.Headers.Set(
    "Content-Disposition", 
    webResponse.Headers.Get("Content-Disposition")); 
1

Content-Disposition HTTP 헤더도 중계해야합니다.

관련 문제