есть стнадартная всем известная функция
- Код: Выделить всё
Function openURL(ByVal sUrl As String) As String
Const INTERNET_OPEN_TYPE_PRECONFIG = 0, INTERNET_OPEN_TYPE_DIRECT = 1, INTERNET_OPEN_TYPE_PROXY = 3, INTERNET_FLAG_RELOAD = &H80000000
Dim hOpen As Long, hOpenUrl As Long, bDoLoop As Boolean, bRet As Boolean, sReadBuffer As String * 2048, lNumberOfBytesRead As Long, sBuffer As String, sHeaders As String
hOpen = InternetOpen("VB Project FL", 1, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, sUrl, sHeaders, Len(sHeaders), INTERNET_FLAG_RELOAD, 0)
bDoLoop = True
While bDoLoop
sReadBuffer = vbNullString
bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
Wend
If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
openURL = sBuffer
End Function
Но "в лоб" она не отдает корректно русский текст. Например открывая главную страницу Яндекса.
Как видите, я уже добавил вместо нулей sHeaders,
даже пробовал посылать вот так:
- Код: Выделить всё
sHeaders = "Accept-Language: ru,en-us" & vbCrLf & _
"Accept-Charset: Windows-1251,utf-8" & vbCrLf & _
"Accept-Encoding: gzip, deflate" & vbCrLf & _
"Content-Language: ru,en-us" & vbCrLf & _
"Content-Charset: Windows-1251,utf-8" & vbCrLf & _
"Content-Encoding: gzip, deflate" & vbCrLf & _
"Content-Type: application/x-www-form-urlencoded; charset=Windows-1251" & vbCrLf & _
"CACHE-CONTROL: no-cache" & vbCrLf & _
"CONNECTION: Keep-Alive" & vbCrLf & _
"USER-AGENT: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
Может, кто-то решал эту проблему уже.
Нужно ли морочиться с заголовками, или можно как-то после переконыертировать кракозябры ( ÐовоÑти Янде ) в русский текст?
Спасибо.