2017-11-21 3 views
2

내가 피들러와 HTTP 트래픽을 확인하려면 .NET의 핵심에,하지만 모든 HTTP 트래픽 캡처, 내 테스트 코드 (예를 들어 바이올린 켜는 사람을 위해) :RestSharp 무시 시스템 프록시

private static void ByRestSharp() 
{ 
    var restClient = new RestClient("https://jsonplaceholder.typicode.com"); 
    var request = new RestRequest("posts", Method.GET); 
    var response = restClient.Get<List<Post>>(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<Post>>(json); 
     Console.WriteLine("{0} posts return by HttpClient.", users.Count); 
    } 
} 

RestSharp 또는 Fiddler의 문제입니까?

답변

3

RestSharp는 .NET Standard로 이동할 때까지 시스템 프록시를 지원합니다. 그런 다음 .NET Core에 대한 프록시 문제가 발생하고 시스템 프록시 사용이 완전히 제거되었습니다. 우리는 issue opened on Github을 가지고 있으며 거기에서 진행 상황을 확인할 수 있습니다.

그러나 프록시를 명시 적으로 설정하면 전체 .NET Framework에서 작동하므로 this issue을 확인하십시오. 확인 문제에서

코드가 작동합니다 :

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); 
관련 문제