Вдохновленный вот этой темой, накатал скрипт для заливки картинок на avit0.ru
Все прекрасно, все работает, НО не могу прочитать ответ сервера после загрузки картинки. Там должен содержаться id закаченной картинки.
Ответ сервака выглядит следующим образом:
Как быть? Что это за кодировка?
Сам экспериментировал с разными кодировками, записывал в файл - все без результата.
Примечание: Функция _TCPGetMIMEType
Код:
#Include <winhttp.au3>
#Include <array.au3>
$sLocalFile = FileOpenDialog('Select Image To upload', 'c:\', 'Все (*.*)')
If @Error Then
MsgBox(0, 'Error', 'FileOpen Error ' & @Error)
Exit
EndIf
$sFileRead = FileRead($sLocalFile)
$sFileType = _TCPGetMIMEType(StringRegExpReplace($sLocalFile, '^.*\\', '')) ; см. примечание в конце сообщения
$Boundary = 'Jc0H5MXlYC527Z3W'
$imageUploadHeaders = 'Host: www.avito.ru' & @CRLF & _
'Proxy-Connection: keep-alive' & @CRLF & _
'Content-Type: multipart/form-data; boundary=----WebKitFormBoundary' & $Boundary & @CRLF & _
'Accept: */*' & @CRLF & _
'Referer: http://www.avito.ru/additem' & @CRLF & _
'Accept-Encoding:gzip,deflate,sdch' & @CRLF & _
'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4'
$imageUploadData = '------WebKitFormBoundary' & $Boundary & @CRLF & _
'Content-Disposition: form-data; name="image"; filename="' & StringRegExpReplace($sLocalFile, '^.*\\', '') & '"' & @CRLF & _
'Content-Type: ' & $sFileType & @CRLF & @CRLF & _
$sFileRead & @CRLF & '------WebKitFormBoundary' & $Boundary & '--' & @CRLF
$hOpen = _WinHttpOpen('Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)')
$hConnect = _WinHttpConnect($hOpen, 'www.avito.ru')
$slData = _WinHttpSimpleRequest($hConnect, 'get', '/additem')
$sdata = _WinHttpSimpleRequest($hConnect, 'post', '/additem/image', Default, $imageUploadData, $imageUploadHeaders)
MsgBox(0, '', $sdata) ; ничего нет, кроме двух символов
MsgBox(0, '', StringReplace($sdata, Chr(0), ' '))
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)
Все прекрасно, все работает, НО не могу прочитать ответ сервера после загрузки картинки. Там должен содержаться id закаченной картинки.
Ответ сервака выглядит следующим образом:
Как быть? Что это за кодировка?
Сам экспериментировал с разными кодировками, записывал в файл - все без результата.
Примечание: Функция _TCPGetMIMEType