Связь с HTTP-прокси через .NET TcpClient - PullRequest
7 голосов
/ 28 марта 2009

Как я могу общаться через HTTP-прокси с TcpClient в C #, вроде WebProxy при использовании HttpWebResponse?

Ответы [ 3 ]

8 голосов
/ 28 марта 2009

Что ж, в TCP нет ничего, что прямо эквивалентно HTTP-прокси. В HTTP клиент (как правило) знает о прокси - он общается с прокси, и просит прокси подключиться к реальному веб-серверу от его имени.

TCP не определяет такого рода вещи, поэтому любое проксирование должно быть прозрачным (то есть то, что маршрутизатор или операционная система делают без ведома клиента, например, с iptables ) или как часть протокола поверх TCP (Прокси-сервер HTTP является хорошим примером этого, так как SOCKS упоминается в другом ответе).

3 голосов
/ 28 марта 2009

Если вы перейдете к низкоуровневому программированию сокетов, я почти уверен, что вам нужно написать собственный прокси-клиент. Если вы имеете дело только с протоколом HTTP, вам, вероятно, лучше использовать специфичные для HTTP классы. Если вам нужно сделать это с сокетами, спецификация HTTP достаточно хорошо описывает поведение прокси, так что вы можете написать свой собственный клиент.

1 голос
/ 28 марта 2009

Если вы хотите использовать прокси-сервер SOCKS, уже есть несколько библиотек SOCKS, написанных для C #. Попробуйте этот .

...