在 c# 中设置代理中的 IP 和端口

set IP and Port in proxy in c#

我想用这个地址向 instagram 发送请求:"https://i.instagram.com" 我想为我发送的每个请求使用代理 哪个可以? uri (""https://i.instagram.com:8080"") 可以吗? 如果第二个代码没问题那么 NetworkCredential

是什么
    IWebProxy Proxya = System.Net.WebRequest.GetSystemWebProxy();
    //to get default proxy settings
    Proxya.Credentials = CredentialCache.DefaultNetworkCredentials;

    Uri targetserver = new Uri("https://i.instagram.com:8080");
    Uri proxyserver = Proxya.GetProxy(targetserver);


    HttpClientHandler handler = new HttpClientHandler();
    handler.Proxy = Proxya;

    IWebProxy Proxya = System.Net.WebRequest.GetSystemWebProxy();
    //to get default proxy settings
    Proxya.Credentials = new NetworkCredential("xxxx", "xxxx");

    Uri targetserver = new Uri("https://i.instagram.com:8080");
    Uri proxyserver = Proxya.GetProxy(targetserver);


    HttpClientHandler handler = new HttpClientHandler();
    handler.Proxy = Proxya;

你必须照顾好你想做的事。

现在,您告诉您的程序通过 GetSystemWebProxy() 使用本地定义的代理服务器。这意味着该程序使用您系统的代理设置中定义的代理。

之后你在这里告诉程序:

Uri targetserver = new Uri("https://i.instagram.com:8080");
Uri proxyserver = Proxya.GetProxy(targetserver);

您的代理服务器正在侦听 https://i.instagram.com:8080。这应该是您的 WebRequest.

的一部分

现在 Proxya.Credentials = new NetworkCredential("xxxx", "xxxx"); 简单地说您的代理服务器需要通过用户名和密码进行身份验证。 您的代理服务器是否允许匿名登录?如果是,那么你不需要它。

但是(!)我不建议提供开放代理。

我建议您将代码分成两部分:

代理代码部分:

在此处定义您的代理设置:

string proxyAddress = "proxyAddress";
int proxyPort = 1337;
string proxyUser = "user";
string proxyPassword = "password";
IWebProxy proxy = new WebProxy(proxyAddress, proxyPort)
{
    Credentials = new NetworkCredential(proxyUser, proxyPassword)
};

或者,如果您不使用代理,则无需定义代理。 如果您使用的是系统设置中定义的代理,那么这就足够了:

IWebProxy proxy = WebRequest.GetSystemWebProxy();

WebRequestHttpClientHandler 本身。

string instagramAddress = "https://i.instagram.com:8080";
Uri targetserver = new Uri(instagramAddress);
// HttpClientHandler handler = new HttpClientHandler();
WebRequest request = WebRequest.Create(targetserver);
// handler.Proxy = proxy;
request.Proxy = proxy; //Set the previously defined proxy here