如何使用RedditSharp代理
本文关键字:代理 RedditSharp 何使用 | 更新日期: 2023-09-27 17:50:16
我在我的脚本中使用RedditSharp从https://github.com/SirCmpwn/RedditSharp,我只是问,当连接使用这个我如何实现代理?我可以更改代理的midscript吗?
没有独立的方法,如果不修改这个库的源代码,您无法完成此操作。
So most pain - less way:
-
RedditSharp的重载构造函数-添加IWebAgent作为类型的新参数。所以它看起来像这样:
public Reddit() : this(new WebAgent()) { } public Reddit(IWebAgent agent) { JsonSerializerSettings = new JsonSerializerSettings(); JsonSerializerSettings.CheckAdditionalContent = false; JsonSerializerSettings.DefaultValueHandling = DefaultValueHandling.Ignore; _webAgent = agent; CaptchaSolver = new ConsoleCaptchaSolver(); }
-
从RedditSharp删除"sealed"关键字。WebAgent类声明。
-
将RedditSharp.WebAgent.CreateRequest方法设为虚拟方法,使其看起来像这样:
public virtual HttpWebRequest CreateRequest(string url, string method, bool prependDomain = true) { ... }
-
创建你自己的基于旧的WebAgent:
public class MyAgent: WebAgent { public IWebProxy Proxy { get; set; } public override HttpWebRequest CreateRequest(string url, string method, bool prependDomain = true) { var base_request = base.CreateRequest(url, method, prependDomain); if (Proxy != null) { base_request.Proxy=Proxy; } return base_request; } }
-
在你的代码中使用它:
var agent = new MyAgent(); var reddit = new Reddit(agent); ... agent.Proxy = new WebProxy("someproxy.net", 8080);
所以现在你可以随时随地设置代理。虽然还没测试过,但肯定能成功