2016-08-24 2 views
0

다음 코드를 사용하여 SSRS 보고서에서 CSV 파일을 다운로드하려고합니다.SSRS 보고서에서 WebClient를 사용하여 CSV 파일 다운로드

Const URI As String = "https://blah.blah.com/blah/_layouts/15/ReportServer/RSViewerPage.aspx?rv:RelativeReportUrl=/blah/Production%20Reports/The_File.rdl&rs:format=csv" 
Const DESTINATION As String = "C:\MyFile.csv" 

Using myWebClient As WebClient = New WebClient() 
    With myWebClient 
     .Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8") 
     .Headers.Add("Accept-Encoding", "gzip, deflate, sdch, br") 
     .Headers.Add("Accept-Language", "en-US,en;q=0.8") 
     .Headers.Add("Content-Disposition", "attachment; filename=%22The%5FFile.csv%22") 
     .Headers.Add("Content-Encoding", "gzip") 
     .Headers.Add("Content-Type", "text/csv") 
     .Headers.Add("Vary", "Accept-Encoding") 
     .Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36") 
     .Headers.Add("Upgrade-Insecure-Requests", "1") 
     .Headers.Add("Referer", URI) 
     .Headers.Add("Cache-Control", "private") 

     .Credentials = New NetworkCredential("<my username>", "<my password>") 
     .DownloadFile(URI, DESTINATION) 
    End With 
End Using 

문제는 다운로드 된 파일이 csv 파일이 아니라는 것입니다. 텍스트 에디터에서 열면 어떤 종류의 인코딩처럼 보이는 "쓰레기"문자가 보입니다. "Accept-Encoding"헤더를 주석 처리하고 코드를 다시 실행하면 결과 HTML 페이지의 코드가 나타납니다. 필요한 csv 파일이 아닙니다. 누구든지 파일을 올바르게 다운로드 할 수있는 방법을 알고 있습니까? BTW, 내가 추가 한 헤더가 모두 필요한 것은 확실하지 않습니다.

답변

0

당신이에서 URI 상수를 변경해야 이것에

Const URI As String = "https://blah.blah.com/blah/_layouts/15/ReportServer/RSViewerPage.aspx?rv:RelativeReportUrl=/blah/Production%20Reports/The_File.rdl&rs:format=csv"

: 당신은 열린 우리당의 Command=Render 일부 누락

Const URI As String = "https://blah.blah.com/blah/_layouts/15/ReportServer/RSViewerPage.aspx?rv:RelativeReportUrl=/blah/Production%20Reports/The_File.rdl&rs:format=csv&rs:Command=Render"

.

+0

Command = Render 부분을 추가했지만 csv 파일이 아닌 HTML 페이지 응답을 계속받습니다. – user2148983

+0

추가하려는 모든 추가 헤더없이이 작업을 시도해 보셨습니까? 왜냐하면, 나는 매월 이와 비슷한 것을 운영하기 때문에이 모든 것을 추가 할 필요가 없습니다. –

+0

내가 추가 한 모든 헤더를 제거했습니다 (User-Agent 제외 - 403 Forbidden 오류를 방지하는 데 필요함). 그리고 csv 파일이 아닌 HTML 페이지 코드를 계속받습니다. – user2148983

관련 문제