.Net HttpClient如何使用socks5Proxy
这篇文章我们要介绍下,在.Net中的如何让HttpClient的Proxy使用Socks5作为Proxy。
###简要
在.Net中,如果要模拟发送POST
/GET
数据包,最常用的就是HttpClient
。而HttpClient
虽然有Proxy,但是只能基于http/https
的代理模式。因为网络环境极其复杂,http/https
的代理模式已经不再安全,也不适用于复杂的业务场景,有时候我们需要使用Socks5
作为代理,就发现好像无法这样,虽然可以通过外部程序干预,比如以网卡的方式设置代理之类的,究其原因还是太过于繁杂。那有没有一种方式能让HttpClient
使用Socks5
代理呢?或者说将Socks5
代理转换成http
代理?
HttpToSocks5Proxy
答案显然是有的,国外一个老哥就提供了.Net下Socks5转http代理的方式,HttpToSocks5Proxy
HttpToSocks5Proxy是什么?
This library allows you to connect over Socks5 proxies when using the .NET HttpClient.
当你使用.Net HttpClient
的时候 允许你通过Socks5
进行代理连接
It implements the IWebProxy interface and can therefore be used with all libraries that support HTTP/HTTPS proxies.
HttpToSocks5Proxy
实现了IWebProxy
接口,所以可以与所有支持HTTP/HTTPS
代理的库一起使用。
HttpToSocks5Proxy怎么用
用法极其简单 值得注意的是,有些站点使用了不同版本的tls协议,所以需要先在程序执行前跑一遍:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
具体作用参考下百度。 这代码很简答,HttpClient的代理使用proxy即可。内部进行了转换操作。
var proxy = new HttpToSocks5Proxy("127.0.0.1", 1080);
var handler = new HttpClientHandler { Proxy = proxy };
HttpClient httpClient = new HttpClient(handler, true);
var result = await httpClient.SendAsync(
new HttpRequestMessage(HttpMethod.Get, "https://httpbin.org/ip"));
Console.WriteLine("HTTPS GET: " + await result.Content.ReadAsStringAsync());
我们模拟一个封包:
最近我在研究twitter的api接口,所以也需要这样一个东西。
推特的SDK,如上篇文章中的CoreTweet
下面看代码:
ConnectionOptions conn = new ConnectionOptions();
conn.UseProxy=true;
var proxy = new HttpToSocks5Proxy("127.0.0.1", 1080);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
conn.Proxy=proxy;
session = OAuth.Authorize("consumerKey", "consumerSecret",null,conn);
txtTwitterTokenUri.Text= session.AuthorizeUri.AbsoluteUri;
本文粗浅的介绍了HttpToSocks5Proxy
,如有不对的地方,敬请斧正。
本文来自:.Net HttpClient如何使用socks5Proxy-小码农,转载请保留本条链接,感谢!
温馨提示:
本文最后更新于 2020年08月18日,已超过 1,542 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
正文到此结束
- 本文标签: proxy c# httpclient socks5
- 本文链接: https://djc8.cn/archives/how-to-use-socks5proxy-for-net-httpclient.html
- 版权声明: 本文由小码农原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
相关文章
该篇文章的评论功能已被站长关闭