Tôi cố gắng để làm cho Fiddler làm việc với RestSharp phù thủy sử dụng System.Http.WebProxy
, vì vậy tôi muốn nó được thiết lập để localhost:8888
hoặc 127.0.0.1:8888
Làm thế nào để System.Net.WebProxy không bỏ qua url cục bộ?
Đây là mã:
var webProxy = new WebProxy(new Uri("http://127.0.0.1:8888"))
{
BypassProxyOnLocal = false
};
var bypassed = webProxy.IsBypassed(new Uri("http://127.0.0.1"));
Console.WriteLine(bypassed);
Đầu ra: đúng
MSDN nêu rõ:
Phương thức IsBypassed được sử dụng để xác định xem có bỏ qua máy chủ proxy khi truy cập tài nguyên Internet hay không.
Thuộc tính BypassProxyOnLocal và BypassList kiểm soát giá trị trả về của phương thức IsBypassed.
IsBypassed lợi nhuận đúng dưới bất kỳ các điều kiện sau:
Nếu BypassProxyOnLocal là đúng và chủ là một URI địa phương. Yêu cầu địa phương được xác định bằng cách thiếu khoảng thời gian (.) Trong URI, như trong "http: // webserver /".
Nếu máy chủ lưu trữ khớp với cụm từ thông dụng trong BypassList.
Nếu địa chỉ rỗng.
Tất cả các điều kiện khác trả lại false.
Tôi không hiểu tại sao trong trường hợp của tôi trả về đúng, đây có phải là lỗi không? Làm thế nào để làm cho nó hoạt động sau đó? Cảm ơn!
Như một sửa đổi nhỏ cho những gì Fiddler đề xuất: nếu bạn sử dụng 'oSession.hostname =" localhost "' thì nó sẽ duy trì số cổng của bạn thay vì thay đổi thành 8081. –
(Lưu ý cách sử dụng 'oSession.hostname' thay thế của 'oSession.host') –