Skip to main content
 首页 » 编程设计

c#之可移植类库上的 WebProxy

2024年02月01日30zhwl

我正在构建一个可移植类库项目。使用 HttpClient 类(从 NuGet 包安装)。

现在。我想通过将 HttpClientHandler 传递给它的构造函数来使 HttpClient 使用 Proxy(HttpClientHandler 具有 Proxy 属性,我们将为它分配一个 WebProxy 实例)。 问题是可移植类库不支持 WebProxy 类。它只有 IWebProxy 接口(interface)。

我在 Google 上搜索了 NuGet Package,但我找不到针对这种情况的任何解决方案。 请告诉我。我该如何解决这个问题(或使用代理制作 HttpClient 的其他方法)

请您参考如下方法:

PCL 没有 IWebProxy 的实现,但它是一个非常简单的接口(interface),您可以轻松地自行实现。对于所有目的地的同一个代理,都是这样的:

public class Proxy : System.Net.IWebProxy 
{ 
    public System.Net.ICredentials Credentials 
    { 
        get; 
        set; 
    } 
 
    private readonly Uri _proxyUri; 
 
    public Proxy(Uri proxyUri) 
    { 
        _proxyUri = proxyUri; 
    } 
 
    public Uri GetProxy(Uri destination) 
    { 
        return _proxyUri; 
    } 
 
    public bool IsBypassed(Uri host) 
    { 
        return false; 
    } 
}