Здравствуйте, Аноним, Вы писали:
А>Очень нужно реализовать HTTP запрос (через POST) на один веб-сервак и достать с него страницу. Но у меня доступ инет через прокси на 8080 порту, на которой нужно авторизоваться. Подскажите плиз, как это делается?
Если ты хочешь достать траницу, то лучше это делать через GET
А через проксю пролезть можну двумя способами:
1. Конфигуришь свой инет (через желаемую проксю) стандартным образом из Internet Explorer'a. Затем перед вызовом
HttpSendRequest указываешь свой логин и пароль примерно так
InternetSetOption( hHTTPFile, INTERNET_OPTION_PROXY_USERNAME, szUser, strlen(szUser) );
InternetSetOption( hHTTPFile, INTERNET_OPTION_PROXY_PASSWORD, szPassword, strlen(szPassword) );
и погнали... у тебя все должно получиться.
2. Сам настраиваешь доступ через прокси сервер при установке соединения
gAccessType = INTERNET_OPEN_TYPE_PROXY;
hSession = InternetOpen( sClientInfo,
gAccessType,
pProxyList, // прокси лист
pProxyExclude, // лист прокси исключений
gOpenFlags );
По указателю
pProxyList ты должен указать список доступных прокси серверов, а в
pProxyExclude укажешь список адресов, которые считать локальными и через проксю не маршрутизировать.
Если у тебя два прокси сервера
HTTP и
FTP, то прокси лист будет выглятеть примерно так (должен закончиться нулем),
"http=http://10.10.10.10:8080 ftp=ftp://10.10.10.20:21" А если сервер только один и HTTP, то можешь просто написать
"10.10.10.10:8080"
По указателю
pProxyExclude можешь написать "<local>", и тоды весь твой локальный трафик мимо денег
Детали глянь в инете или в MSDN.
Удачи!
Здравствуйте, Аноним, Вы писали:
А>Спасибо большое!
А>А есть способ продтектировать, есть ли прокси или нет, и если есть, то выкинуть окошко с запросом ввести логин и пароль авторизации?
if (ERROR_SUCCESS == RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings",0,"",
REG_OPTION_NON_VOLATILE,KEY_READ,NULL,&hKey,&dwResult))
{
dwType = REG_DWORD;
dwDataSize = 8;
if (ERROR_SUCCESS == RegQueryValueEx(hKey,"ProxyEnable",0,&dwType,(LPBYTE)lValue,&dwDataSize))
{
if (lValue[0])
{
dwType = REG_SZ;
dwDataSize = 1000;
if (ERROR_SUCCESS == RegQueryValueEx(hKey,"ProxyServer",0,&dwType,(LPBYTE)sProxyServer,&dwDataSize))
{
}
}
}
RegCloseKey(hKey);
}
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Спасибо большое!
А>>А есть способ продтектировать, есть ли прокси или нет, и если есть, то выкинуть окошко с запросом ввести логин и пароль авторизации?
А>А>if (ERROR_SUCCESS == RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings",0,"",
А> REG_OPTION_NON_VOLATILE,KEY_READ,NULL,&hKey,&dwResult))
А>{
А> dwType = REG_DWORD;
А> dwDataSize = 8;
А> if (ERROR_SUCCESS == RegQueryValueEx(hKey,"ProxyEnable",0,&dwType,(LPBYTE)lValue,&dwDataSize))
А> {
А> if (lValue[0])
А> {
А> dwType = REG_SZ;
А> dwDataSize = 1000;
А> if (ERROR_SUCCESS == RegQueryValueEx(hKey,"ProxyServer",0,&dwType,(LPBYTE)sProxyServer,&dwDataSize))
А> {
А> }
А> }
А> }
А> RegCloseKey(hKey);
А>}
А>
Что бы это могло значить???
Здравствуйте, Аноним, Вы писали:
А>>А>>if (ERROR_SUCCESS == RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings",0,"",
А>> REG_OPTION_NON_VOLATILE,KEY_READ,NULL,&hKey,&dwResult))
А>>{
А>> dwType = REG_DWORD;
А>> dwDataSize = 8;
А>> if (ERROR_SUCCESS == RegQueryValueEx(hKey,"ProxyEnable",0,&dwType,(LPBYTE)lValue,&dwDataSize))
А>> {
А>> if (lValue[0])
А>> {
А>> dwType = REG_SZ;
А>> dwDataSize = 1000;
А>> if (ERROR_SUCCESS == RegQueryValueEx(hKey,"ProxyServer",0,&dwType,(LPBYTE)sProxyServer,&dwDataSize))
А>> {
А>> }
А>> }
А>> }
А>> RegCloseKey(hKey);
А>>}
А>>
А>Что бы это могло значить???
А это если ты забыл, конфигурил ты прокси сервер в эксплорере или нет, то вот таким волшебным способом ты можешь это проверить...