using Tor as Proxy
I'm trying to use Tor-Server as a proxy in HttpWebRequest
, my code looks like this:
HttpWebRequest request;
HttpWebResponse response;
request = (HttpWebRequest)WebRequest.Create("http://www.google.com");
request.Proxy = new WebProxy("127.0.0.1:9051");
response = (HttpWebResponse)request.GetResponse();
response.Close();
it works perfect with "normal" proxies but with Tor I'm getting Exceptions while calling
GetResponse() with Status = ServerProtocolViolation. The message is (in German...):Message = "Der Server hat eine Protokollverletzung ausgeführt.. Section=ResponseStatusLine"
Solution 1:
If you have privoxy installed and running you can do
request.Proxy = new WebProxy("127.0.0.1:8118"); // default privoxy port
Which will enable you to make requests using tor
Solution 2:
Tor is not an HTTP proxy. It's a SOCKS proxy. You can use an HTTP proxy that supports forwarding on SOCKS (like Privoxy) and connect to that via code instead.
Solution 3:
Yes like the other poster said, a socks client is needed. Some libraries are Starksoft Proxy, ProxySocket and ComponentSpace Socks Proxy. sockscap is a tool that intercepts and reroutes winsock calls, and privoxy is a local proxy that can tunnel your requests over socks. A couple different solutions.