Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2012, 19:48   #1
trafbite
Форумчанин
 
Регистрация: 21.07.2007
Сообщений: 103
По умолчанию WinInet ('GET') = Иероглифы. Как починить?

Всем привет.
Ребят, выручайте!

Пробую получить страничку через проксик. Есть функция:

Код:
function TProxyChecker.TryGetScript(Proxy: String): String;
  function DataAvailable(hRequest: pointer; out Size: cardinal): BOOLEAN;
  begin
    Result := WinInet.InternetQueryDataAvailable(hRequest, Size, 0, 0);
  end;
var
  hInternet, hConnect, hRequest: pointer;
  dwBytesRead, i, L: cardinal;
  TimeOut: Integer;
begin
  try
    hInternet := InternetOpen(PWideChar(DefaultAppName), INTERNET_OPEN_TYPE_PROXY, PWideChar(proxy),Nil,0);
    if Assigned(hInternet) then
    begin
      TimeOut:=2000;
      InternetSetOption(hInternet, INTERNET_OPTION_CONNECT_TIMEOUT, @TimeOut, sizeof(TimeOut));
      InternetSetOption(hInternet, INTERNET_OPTION_SEND_TIMEOUT, @TimeOut, sizeof(TimeOut));
      InternetSetOption(hInternet, INTERNET_OPTION_RECEIVE_TIMEOUT, @TimeOut, sizeof(TimeOut));
      InternetSetOption(hInternet, INTERNET_OPTION_DATA_RECEIVE_TIMEOUT, @TimeOut, sizeof(TimeOut));

      hConnect := InternetConnect(hInternet, PWideChar('domen.com'),INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 1);
      if Assigned(hConnect) then
      begin
        hRequest := HttpOpenRequest(hConnect, PChar('GET'), PWideChar('/script.php'), HTTP_VERSION, nil, Nil, INTERNET_FLAG_KEEP_CONNECTION, 1);
        if Assigned(hRequest) then
        begin
          i := 1;
          if HttpSendRequest(hRequest,nil, 0, nil, 0) then
          begin
            repeat
              DataAvailable(hRequest, L);
              if L = 0 then
                break;
              SetLength(result, L+I);
              if not InternetReadFile(hRequest, @result[I], sizeof(L), dwBytesRead) then
                break;
              inc(I, dwBytesRead);
            until dwBytesRead = 0;
            result[I] := #0;
          end;
        end;

      end;
    end;
  finally
  end;
end;
Потом вызываю ее так:

Код:
...
var
  HtmlCode: String;
...
  HtmlCode:=TryGetScript(Proxy);
...
Так вот в HtmlCode получаются иероглифы (если выводить его в Memo, а если в файл, то вопросы). Что-то не то с кодировкой, но ГДЕ?
trafbite вне форума Ответить с цитированием
Старый 19.04.2012, 09:02   #2
trafbite
Форумчанин
 
Регистрация: 21.07.2007
Сообщений: 103
По умолчанию

Ну, кто-нибудь!
trafbite вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WinInet работает не так как нужно! 1234567852 Win Api 7 26.02.2012 19:45
SendMessage иероглифы !? Pozitif Помощь студентам 3 08.12.2011 21:03
MessageBox и иероглифы ImmortalAlexSan Общие вопросы C/C++ 5 10.03.2011 12:22
Иероглифы в Equation mitrandir Microsoft Office Word 9 25.09.2007 09:06
Помогите починить замороженную БАЗУ!!!! bes Microsoft Office Access 5 13.12.2006 14:53