Socks Proxy for HttpWebRequest

JoeR picture JoeR · Oct 4, 2010 · Viewed 13.6k times · Source

According to my research whilst trying to solve this problem, it turns out that the .Net WebProxy class does not support Socks proxies - a tad annoying. I also can't seem to find any code or information which explains how to implement Socks 4/5 support via a class which can easily be used with HttpWebRequest (the Proxy property, to be exact).

I've found limited information via google on how I could do this. One suggestion involves changing internet explorer proxy settings - something I'd rather not do.

Does anyone know of anything which could do the job or have any suggestions? Any help would be much appreciated.

Answer

JoeR picture JoeR · Oct 25, 2010

I tried numerous .Net libraries which claimed to support Socks4/5 but found many of them just did not work or would error trying to connect to proxies I knew were functioning.

I've ended up using Chilkat Software's Sock/SSL component which seems to work well for me even if I do have to manually construct the HTTP requests instead of using HttpWebRequest as I would have liked.

  • Update note: Chilkat.Http (similar to the HttpWebRequest class) does inherently have support for SOCKS proxies. So don't spend time trying to code your own HTTP requests as I did; just use the Chilkat.Http.SocksHostname, Chilkat.Http.SocksPort and Chilkat.Http.SocksVersion properties.