2016-08-24 31 views
0

次のコードを使用してSSRSレポートからcsvファイルをダウンロードしようとしています。WebClientを使用してSSRSから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」ヘッダをコメントアウトしてコードを再実行すると、必要なcsvファイルではなく、結果のHTMLページのコードが取得されます。誰でもファイルを正しくダウンロードできますか?ところで、私が追加したヘッダーはすべて必要なのかどうかはわかりません。

答えて

0

あなたはこのURIから定数を変更する必要があります:あなたがウリの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"

:これに

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"

+0

Command = Renderの部分を追加しましたが、まだHTMLページの応答を取得しますが、csvファイルは取得しません。 – user2148983

+0

追加しようとしているヘッダーをすべて削除せずに試しましたか?なぜなら、私は毎月これに似た何かを実行するので、これを動かすためにすべてを追加する必要はありません。 –

+0

追加したヘッダーをすべて削除しました(User-Agentは403 Forbiddenエラーを避けるために必要です)、csvファイルではなくHTMLページコードを取得しました。 – user2148983

関連する問題