0
我發現了這樣做的不同例子,但一直沒有能夠得到他們的任何組合工作。使用WebClient登錄和下載文件
基本上,我有一個內聯網系統,可以從網頁鏈接生成文件,我知道我想下載哪些文件。我能夠生成我想下載的鏈接列表,但遇到了在程序內對系統進行身份驗證的問題。我一直得到這個這個401錯誤:
Public Shared Sub DownloadFiles(_tool As Tool)
Dim links As List(Of String) = GetJiraLinks(_tool)
Dim downloader As New WebClient
' Initialize the client
Dim reqParm As New Specialized.NameValueCollection
reqParm.Add("os_username", "user")
reqParm.Add("os_password", "pass")
reqParm.Add("os_destination", "/secure/")
downloader.Credentials = New NetworkCredential("user", "pass")
Dim uploadLocation As String = My.Settings.jiraLocation & "login.jsp"
'downloader.Headers.Add("Content-Type", "application/x-www-form-urlencoded")
Dim responseBytes = downloader.UploadValues(uploadLocation, "POST", reqParm)
Dim responseBody = (New Text.UTF8Encoding).GetString(responseBytes)
Dim workingDir As String = CreateWorkingDir()
For Each link As String In links
Dim tempUri As New Uri(link)
Dim localpath As String = workingDir & "\" & System.IO.Path.GetFileName(tempUri.LocalPath)
downloader.DownloadFile(tempUri, localpath)
Next
End Sub
你用[Fiddler](http://www.fiddler2.com)來看看發生了什麼? –
謝謝你。使用這個我可以看到有一個cookie參與。我的猜測是WebClient沒有保存這個cookie。我發現http://stackoverflow.com/questions/2825377/how-can-i-get-the-webclient-to-use-cookies,但它不顯示如何使用它。 – Origin