Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/33: Рейтинг темы: голосов - 33, средняя оценка - 4.76
(Yellow_Duck)
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
1

Запросы через Proxy.

14.10.2009, 03:15. Показов 5914. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вообщем столкнулся я с таким:
Нужно, чтобы программа выполняла запросы через Proxy сервер. скрывать не буду: мне нужны обращения к серверу вконтакте. Чтобы не было бана. Так вот: Когда программа делает запрос, ей возвращается какая-то страница, которую нужно спарсить. Логично, что проще всего это сделать с URLDownloadToFile, при которой не грузятся картинки, и вообще все отлично, но я не знаю как здесь сделать чтобы это скачивалось и не было видно твоего ип.
Как вариант только что возникла идея использовать idhttp с его ProxyParams, и функцией
get() этого объекта. Кто что посоветует?

Добавлено через 1 минуту
А, еще вот что, как здесь можно организовать много поточность?
Скажем у меня есть страницы, на каждой странице только по 20 человек, мне нужно чтобы отдельный поток занимался скачиванием своей страницы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2009, 03:15
Ответы с готовыми решениями:

FTP через HTTP proxy
Здравствуйте, уважаемые форумчане. Пишу FTP клиент подключающийся к FTP серверу через HTTP Proxy...

Загрузка страниц через корпоративный прокси (Proxy)
Добрый день! Мучаюсь уже несколько дней, и никак не могу выйти в просторы интернета в свой...

Post-запросы через Proxy
Вот код: import urllib import urllib2 import requests url =...

Прорыв через ISA proxy ошибку HTTP/1.1 407 Proxy Authentication Required
мой клиент на си++ по http протоколу общается с моим же сервром. Если на пути тупое прокси, то всё...

4
Эксперт С++
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
14.10.2009, 12:44 2
Не понял - а что именно должна делать программа ?
Если просто зайти на сервер вконтакте, то достаточно в броузере указать proxy-сервер.

Не знаю как в delphi, а в perl html-страница парсится с помощью стандартного модуля LWP.

Многопоточность организуется с помощью многопоточного приложения.
Порождаешь например 5 потоков (броузер обычно так делает). Каждый поток делает свой коннект на сервер и работает независимо от другого.
0
Эксперт С++
3071 / 1409 / 425
Регистрация: 19.01.2009
Сообщений: 3,888
15.10.2009, 00:56 3
Цитата Сообщение от MadMag Посмотреть сообщение
что проще всего это сделать с URLDownloadToFile
на мой взгляд, тут можно обойтись и стандартным IdHTTP.

Кстати, тебе будет интересна вот эта моя программка ProxyList.

настраиваем прокси
Delphi
1
2
    IdHTTP1.ProxyParams.ProxyPort   := Port;
    IdHTTP1.ProxyParams.ProxyServer := Host;
и обращаемся с GET запросом
Delphi
1
2
3
var buff : string;
// ...
buff := IdHTTP1.Get('http://site.com');
Парсим, что у нас получилось в buff.

В дельфи многопоточность очень легко реализовать, главное не забывать о синхронизации, и будет все ОК. Для начала, почитай в справочной системе Дельфи - "Writing multi-threaded applications".
1
Не осилил Linux
267 / 61 / 6
Регистрация: 06.08.2009
Сообщений: 223
15.10.2009, 20:31 4
Цитата Сообщение от MadMag Посмотреть сообщение

Добавлено через 1 минуту
А, еще вот что, как здесь можно организовать много поточность?
Скажем у меня есть страницы, на каждой странице только по 20 человек, мне нужно чтобы отдельный поток занимался скачиванием своей страницы.
Создаешь в проекте модуль для потока.
В нем создаешь класс наследник от tthread
Объявляешь как член класса tidhttp.
Переопределяешь метод Execute, заготовка уже будет создана самой дельфи.
Не забудь вызывать конструктор idhttp, ибо тут ты его используешь не как компонент, а как обычный класс.
Для синхронизации потоков советую использовать критические секции, имхо проще всего это:
объявляешь в разделе var раздела implementation переменную:
InitializeCriticalSection(CS);
Создашь разделы после implementation и прописываешь
Delphi
1
2
3
4
initialization
  InitializeCriticalSection(CS);
finalization
  DeleteCriticalSection(CS);
В процедуре execute где происходит обращение к главной форме вызываешь критическую секцию, например:
Delphi
1
2
3
       EnterCriticalSection(CS);
            Form1.sMemo2.Lines.Add('OK');
        LeaveCriticalSection(CS);
Вуаля, экземпляр потока готов.

Чтобы каждый поток работал со своей страницей, объяви у него соответствующее свойство типа стринг.
И при инициализации потоков передавай его значение.
1
Эксперт С++
3071 / 1409 / 425
Регистрация: 19.01.2009
Сообщений: 3,888
17.10.2009, 14:09 5
Цитата Сообщение от MadMag Посмотреть сообщение
организовать много поточность?
http://www.cyberguru.ru/progra... reads.html
0
17.10.2009, 14:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2009, 14:09
Помогаю со студенческими работами здесь

Notepad++ через Proxy
Поделитесь, кому нибудь удалось подключить Notepad++ к FTP через прокси?.. Добавлено через 5...

работа через proxy
всем привет, пишу на c++ небольшой клиентик,как в нем реализовать работу через proxy? зарание...

Oracle через Proxy
Господа Я в интранете Сервер в интернете каким приложеним Oracle могу администрить этот...

Клики через Proxy
Здравствуйте, подксажите возможно ли кликать по партнёркам меняя IP-адрес через Proxy Switcher,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru