И
ИгорьС
Код:
' Пытаюсь писать файл на сервер (пишу через HTTP-прокси)
Public Declare Function HttpSendRequestEx Lib "wininet.dll" Alias "HttpSendRequestExA" ( _
ByVal hRequest As Long, ByRef lpBuffersIn As INTERNET_BUFFERS, _
ByRef lpBuffersOut As INTERNET_BUFFERS, _
ByVal dwFlags As Long, ByVal dwContext As Long) As Long
... 'Открываю запрос
hReq = HttpOpenRequest(hConnection, "POST", strURL, vbNullString, vbNullString, _
0&, INTERNET_FLAG_NO_CACHE_WRITE, 0)
' Отправляю запрос
iReq = HttpSendRequest(hReq, vbNullString, 0, vbNullString, 0)
' Читаю файл в текстовую переменную
Open "c:\text.ext" For Binary Access Read As #71: fLen = LOF(71): sFile = InputB(fLen, #71)
Close #71
' Заполняю структуру (изъято из примера на С++)
BufferIn.dwStructSize = Len(BufferIn) '; // Must be set or error will occur
BufferIn.Next = 0& 'Null ';
BufferIn.lpcszHeader = 0& 'Null ';
BufferIn.dwHeadersLength = 0 ';
BufferIn.dwHeadersTotal = 0 ';
BufferIn.lpvBuffer = 0& 'Null ';
BufferIn.dwBufferLength = 0 ';
BufferIn.dwBufferTotal = fLen '; // This is the only member used other than dwStructSize
BufferIn.dwOffsetLow = 0 ';
BufferIn.dwOffsetHigh = 0 ';
' Отправляю расширение запроса
LRet = HttpSendRequestEx(hReq, BufferIn, 0&, 0, 0)
' Пишу файл пакетами по 2К
Dim dBuffer As Long, pBuffer() As Byte
dBuffer = 2048: ReDim pBuffer(1 To dBuffer)
i = 0
Do
i = i + 1: pos = 2048 * (i - 1) + 1
If fLen - pos < 2048 Then dBuffer = fLen - pos: ReDim pBuffer(1 To dBuffer + 1)
Get #71, , pBuffer
iRet = InternetWriteFile(hReq, pBuffer(1), dBuffer, dwBytesWritten)
If iRet = 0 Then
ErrorOut Err.LastDllError, "InternetWriteFile"
GoTo 89
End If
If Not fLen - pos > 2048 Then Exit Do
Loop
Код:
iRet = HttpEndRequest(hReq, 0&, 0, 0)
12030 - Тhe conntction with the server was tarmenated abnormally
Подскажите пожалуйста хотя бы где искать?