溫馨提示×

c# httpwebrequest如何處理代理

c#
小樊
81
2024-11-16 20:40:52
欄目: 編程語言

在C#中,使用HttpWebRequest類處理代理服務(wù)器非常簡單。您需要?jiǎng)?chuàng)建一個(gè)WebProxy對(duì)象,將其分配給HttpWebRequest對(duì)象的Proxy屬性,然后執(zhí)行請(qǐng)求。以下是一個(gè)簡單的示例,說明如何使用代理服務(wù)器發(fā)送HTTP請(qǐng)求:

using System;
using System.IO;
using System.Net;
using System.Text;

class Program
{
    static void Main()
    {
        // 代理服務(wù)器的地址和端口
        string proxyAddress = "http://proxy.example.com:8080";

        // 創(chuàng)建一個(gè)WebProxy對(duì)象
        WebProxy proxy = new WebProxy(proxyAddress, true);

        // 設(shè)置代理服務(wù)器的用戶名和密碼(如果需要)
        proxy.Credentials = new NetworkCredential("username", "password");

        // 創(chuàng)建一個(gè)HttpWebRequest對(duì)象
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com");

        // 將代理分配給HttpWebRequest對(duì)象
        request.Proxy = proxy;

        // 設(shè)置請(qǐng)求方法(例如GET或POST)
        request.Method = "GET";

        try
        {
            // 發(fā)送請(qǐng)求并獲取響應(yīng)
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
            {
                // 讀取響應(yīng)內(nèi)容
                string content = reader.ReadToEnd();
                Console.WriteLine(content);
            }
        }
        catch (WebException ex)
        {
            // 處理異常
            using (WebResponse response = ex.Response)
            {
                HttpWebResponse httpResponse = (HttpWebResponse)response;
                Console.WriteLine($"Error code: {httpResponse.StatusCode}");
                using (StreamReader reader = new StreamReader(httpResponse.GetResponseStream(), Encoding.UTF8))
                {
                    string content = reader.ReadToEnd();
                    Console.WriteLine(content);
                }
            }
        }
    }
}

在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)WebProxy對(duì)象,并將其地址設(shè)置為proxy.example.com,端口設(shè)置為8080。然后,我們將其分配給HttpWebRequest對(duì)象的Proxy屬性。接下來,我們設(shè)置了請(qǐng)求方法(GET)并發(fā)送請(qǐng)求。最后,我們讀取并輸出響應(yīng)內(nèi)容。如果在發(fā)送請(qǐng)求時(shí)發(fā)生異常,我們將捕獲它并輸出錯(cuò)誤信息。

0