Добрый день, коллеги.
Очень нужна ваша помощь. Я пытаюсь сохранить файл при помощи http запросами средствами MSXML2.XMLHTTP.
Когда я пробую сохранить просто обычную страницу, то все ок, приходит ответ от сервера и я сохраняю пришедший ответ в файл. Но когда я отправляю запрос, и в ответ на это мне сервер должен прислать файл, у меня ничего не получается. Пишет что тело запроса пустое и статус 200, типа все ок. Укажите пожалуйста, где моя ошибка. Прилагают пример файла с примерами.
Option Explicit
Function SaveWebFile(ByVal vWebFile As String, ByVal vLocalFile As String) As Boolean
Dim oXMLHTTP As Object, i As Long, vFF As Long, oResp() As Byte
Dim strResponse As String
'You can also set a ref. to Microsoft XML, and Dim oXMLHTTP as MSXML2.XMLHTTP
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
oXMLHTTP.Open "GET", vWebFile, False 'Open socket to get the website
'oXMLHTTP.setRequestHeader "Accept-Charset", "windows-1251"
oXMLHTTP.setRequestHeader "Content-Type", "finam/expotfile"
oXMLHTTP.setRequestHeader "Content-Type", "finam/expotfile"
oXMLHTTP.setRequestHeader "Content-Disposition", "attachment; filename=""TAVR_100919_100919.txt"""
oXMLHTTP.setRequestHeader "Content-Encoding", "gzip"
oXMLHTTP.setRequestHeader "Vary", "Accept-Encoding"
oXMLHTTP.setRequestHeader "Transfer-Encoding", "chunked"
oXMLHTTP.setRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
oXMLHTTP.setRequestHeader "Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3"
oXMLHTTP.setRequestHeader "Accept-Encoding", "gzip,deflate"
' oXMLHTTP.setRequestHeader "Content-Type", "finam/expotfile"
' oXMLHTTP.setRequestHeader "Content-Type", "finam/expotfile"
' oXMLHTTP.setRequestHeader "Content-Type", "finam/expotfile"
oXMLHTTP.Send 'send request
oResp = oXMLHTTP.responseBody 'Returns the results as a byte array
Dim oText
oText = oXMLHTTP.responseTEXT 'Returns the results as a byte array
Debug.Print oXMLHTTP.Status
Dim rt
rt = oXMLHTTP.responseBody
'Dim oADOStream
'Set oADOStream = CreateObject("ADODB.Stream")
'oADOStream.Type = 1
'oADOStream.Mode = 3
'oADOStream.Open
'oADOStream.Write rt
'oADOStream.SaveToFile "c:\anyfilename.txt"
'oADOStream.Close
'Set oADOStream = Nothing
'Set objHTTP = Nothing
'Wait for request to finish
Do While oXMLHTTP.readyState <> 4
DoEvents
Loop
Sheet1.Range("A1").Value = strResponse
'Create local file and save results to it
vFF = FreeFile
If Dir(vLocalFile) <> "" Then Kill vLocalFile
Open vLocalFile For Binary As #vFF
Put #vFF, , oResp
Close #vFF
'Clear memory
Set oXMLHTTP = Nothing
End Function
Sub TestingTheCode()
'It doesn't work
SaveWebFile "http://195.128.78.52/TAVR_100919_100919.txt?d=d&market=1&em=19012&df=19&mf=8&yf=2010&dt=19&mt=8&yt=2010&p=7&f=TAVR_100919_100919&e=.txt&cn=TAVR&dtf=1&tmf=1&MSOR=0&sep=1&sep2=1&datf=2&at=1", "C:\finam.txt"
'It works
SaveWebFile "http://lingvo.abbyyonline.com/ru/en-ru/excellent", "C:\lingvo.txt"
End Sub
Кроме этого дают ссылку на пример файла с депозита.
http://depositfiles.com/files/ft50gljv2
Ответить
|