Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];

Вниз

Получить HTML код через proxy   Найти похожие ветки 

 
ArhArhangel ©   (2006-09-18 13:23) [0]

Здравствуйте!
Нижеприведенная функция берет html код странички с Интернета через proxy.
Если эту функцию использую просто как программу и запускаю от своего пользователя, то все работает, но когда делаю её как системную службу, коннекта не происходит.
Присылает страницу со следующим текстом:
ERROR
Cache Access Denied
________________________________________
While trying to retrieve the URL:http://www.rambler.ru/
The following error was encountered:
 Cache Access Denied.
Sorry, you are not currently allowed to request:
   http://www.rambler.ru/
________________________________________


function GetThePage(Adres,getStr:String): String;
var   hOpenHandle,hSession, hConnectHandle, hResourceHandle: HInternet;
     strUsername, strPassword: Array[0..81] of char;
     pcData: Array [0..1023] of char;
     dwStatusSize, dwBytesRead: DWORD;
     cchUserLength, cchPasswordLength: DWORD;
     dwStatus: DWORD;
     vas: cardinal;
     bRead: boolean;

     i:integer;
     Buffer: Array[1..1024] of Char;
     BufferLen: LongWord;

Label   resend;

begin

 dwStatusSize:= SizeOf(dwStatus);

 lstrcpy(@strUsername,PChar(ProxyUsername));
 lstrcpy(@strPassword,PChar(ProxyPassword));
 cchUserLength:= Length(strUsername);
 cchPasswordLength:= Length(strPassword);

 //Соединимся с интернет
 hOpenHandle:= InternetOpen("Example", INTERNET_OPEN_TYPE_PROXY, "172.31.51.7:80", "", 0); //PChar(ProxyIP), PChar(ProxyPort)
 //Откроем новую сессию
 hConnectHandle:= InternetConnect(hOpenHandle, PChar(Adres), INTERNET_DEFAULT_HTTP_PORT, NIL, NIL, INTERNET_SERVICE_HTTP,0,0);
 //Создадим указатель и укажем необходимые параметры для использования протокола HTTP
 hResourceHandle:= HttpOpenRequest(hConnectHandle, "GET", PChar(getStr), NIL, NIL, NIL, INTERNET_FLAG_KEEP_CONNECTION, 0);

 InternetSetOption(hResourceHandle, INTERNET_OPTION_PROXY_USERNAME, @strUsername, cchUserLength+1);
 InternetSetOption(hResourceHandle, INTERNET_OPTION_PROXY_PASSWORD, @strPassword, cchPasswordLength+1);

 //InternetSetOption(hResourceHandle, INTERNET_OPTION_PROXY_USERNAME, @ProxyUsername, length(ProxyUsername)+1);
 //InternetSetOption(hResourceHandle, INTERNET_OPTION_PROXY_PASSWORD, @ProxyPassword, length(ProxyPassword)+1);

 resend:

 HttpSendRequest(hResourceHandle, NIL, 0, NIL, 0);
 vas:=0;
 //получим информацию о файле
 HttpQueryInfo(hResourceHandle, HTTP_QUERY_FLAG_NUMBER or HTTP_QUERY_STATUS_CODE, @dwStatus, dwStatusSize, vas);

 i:=0;

Result:="";
 while (1=1) do
   begin
     bRead:=internetReadFile(hResourceHandle,@pcData,1024,dwBytesRead);  //считываем файл
     Result:=Result+pcData;
     if ( not bRead) then break;
     if (dwBytesRead = 0) then
     break;
   end;
// InternetCloseHandle(hOpenHandle);
end;


 
Rouse_ ©   (2006-09-18 16:13) [1]

Ну так что ты хочешь? Это прокси тебя не пускает, проверяй правильность прихода в функцию ProxyUsername и ProxyPassword


 
Ketmar ©   (2006-09-18 16:31) [2]

есть подозрение, что там NTLM-аутентификация. натурально, сервир работает не под юзерским аккаунтом. %-)


 
Rouse_ ©   (2006-09-18 16:46) [3]

Хм, кстати действительно, похоже тут Ketmar прав...
Попробуй сервис запускать не от имени Local System (по умолчанию) а по имени твоего пользователя - паролю...


 
ArhArhangel ©   (2006-09-19 04:44) [4]

Спасибо!

А можно как-нибудь программно проходить NTLM-аутентификацию?


 
Ketmar ©   (2006-09-19 05:00) [5]

> [4] ArhArhangel ©   (19.09.06 04:44)
а сейчас она что, магически работает? %-) всё можно. только нужно или работать под требуемым аккаунтом, или знать логин/пароль.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.05 c
3-1165168049
001
2006-12-03 20:47
2007.02.25
Текстовая база


15-1170601610
Ricks
2007-02-04 18:06
2007.02.25
Куда девался пункт меню Project->Resources???


2-1170885198
MegaNop
2007-02-08 00:53
2007.02.25
Поменять цвет PageControl1


1-1167203119
TCrash
2006-12-27 10:05
2007.02.25
Zlib потоки (TDecompressionStream)


1-1167678957
Rembo
2007-01-01 22:15
2007.02.25
FindComponent и фрейм: как?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский