#vb.net #visual-studio-2010
#vb.net #visual-studio-2010
Вопрос:
Я загружал файл с помощью этого метода в течение последних двух лет, но теперь он выдает эту запрещенную ошибку (403). Это адрес:http://www.nseindia.com/content/historical/DERIVATIVES/2014/JUL/fo04JUL2014bhav.csv.zip. И это код :
wcNseFut.DownloadFileAsync(uriNseFut, strFullFileName)
strFullFileName — это путь для сохранения файла. Я много пробовал, но это еще не решено. Пожалуйста, помогите.
Полный код :
If CheckValidations() = True Then
If CheckNet() Then
Dim strFullFileName As String
dtBhav = CDate(dtBhavcopyDate.Value)
btnNseFuturesDownload.Enabled = False
btnNseFuturesDownload.Text = "Downloading....."
AddHandler wcNseFut.DownloadFileCompleted, AddressOf wcNseFut_DownloadFileCompleted
AddHandler wcNseFut.DownloadProgressChanged, AddressOf wcNseFut_DownloadProgressChanged
MDIStockMIS.UStatusBar.Panels("Text").Text = ""
MDIStockMIS.UStatusBar.Panels("Text").Text = "Downloading file ..........."
''-------- Download NSE future file
''-------- http://www.nseindia.com/content/historical/DERIVATIVES/2014/APR/fo11APR2014bhav.csv.zip
Dim uriNseFut As New Uri(NseFuturesFTPAddress(dtBhav))
strFullFileName = ""
strFullFileName = m_strPathEQ amp; "" amp; BHAVCOPY_NSE_FO_FOLDER amp; ".zip"
DeleteFile(strFullFileName, False)
wcNseFut.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)")
wcNseFut.DownloadFileAsync(uriNseFut, strFullFileName)
End If
Else
ShowUltraMessage(Nothing, "Please select the path and enter a valid date.", "Error", MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, "", "", _
"Check conditions", "Stock MIS")
End If
Комментарии:
1. 403 запрещено означает, что веб-сайт не позволяет вам загружать файл. Можете ли вы загрузить файл из веб-браузера? Я предполагаю, что веб-сайт теперь блокирует ваше приложение
2. да, я могу загрузить файл из браузера.
3. Возможно, настройте пользовательский агент для webclient, чтобы веб-сайт думал, что это браузер, загружающий файл. wcNseFut. Заголовки. Добавить («user-agent», «Mozilla/4.0 (совместимый; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)»)
4. Я добавил заголовок, о котором вы говорили, но теперь выдает ошибку forbidden 404
5. Используете ли вы прокси-сервер?
Ответ №1:
Предложение @kentucker добавить user-agent в заголовок webclient было очень близко к решению. Я просто использовал fiddler для получения правильного пользовательского агента, добавил некоторые сетевые учетные данные, а затем все заработало нормально.