RestSharp忽略.NET Core上的系统代理(例如Fiddler)
我想用Fiddler检查http流量,但没有捕获任何http流量,我的测试代码:
private static void ByRestSharp() { var restClient = new RestClient("https://jsonplaceholder.typicode.com"); var request = new RestRequest("posts", Method.GET); var response = restClient.Get<List>(request); Console.WriteLine("{0} posts return by RestSharp.", response.Data.Count); }
但是在我改为使用HttpClient后,Fiddler可以捕获http流量,示例代码:
private static void ByHttpClient() { var httpClient = new HttpClient(); using (var req = new HttpRequestMessage(HttpMethod.Get, "https://jsonplaceholder.typicode.com/posts")) using (var resp = httpClient.SendAsync(req).Result) { var json = resp.Content.ReadAsStringAsync().Result; var users = SimpleJson.SimpleJson.DeserializeObject<List>(json); Console.WriteLine("{0} posts return by HttpClient.", users.Count); } }
这是RestSharp还是Fiddler的问题?
在我们迁移到.NET Standard之前,RestSharp支持系统代理。 然后,我们在.NET Core上遇到了代理问题,然后完全删除了使用系统代理。 我们在Github上打开了一个问题 ,您可以查看那里的进度。
但是,显式设置代理应该适用于完整的.NET Framework,请检查此问题 。
该问题的代码已确认有效:
var client = new RestClient("http://www.google.com"); client.Proxy = new WebProxy("127.0.0.1", 8888); var req = new RestRequest("/", Method.GET); var resp = client.Execute(req);
更新2018-05-31: RestSharp 106.3也自动使用.NET Core上的默认代理。 与提琴手一起测试。
- .NET Core中的Assembly.GetEntryAssembly()相当于什么?
- .Net Core如何实现SQLAdapter ./ DataTable函数
- ASP.net Core 2.0中的appsettings.json预览配置GetSection null
- 如何根据XUnit测试隔离EF InMemory数据库
- .net Core X Forwarded Proto无法正常工作
- 获取.net core 2.1中的usb存储设备的序列号
- .NET Core 2.0模块化dependency injection
- 如何在.Net Core类库中使用Rijndael加密? (不是.Net Framework)
- 将Web服务迁移到.NET Core 2.0并返回json