C# での HttpWebRequest の使用法

序文

HttpWebRequest は、HTTP リクエストの送受信によく使用されるクラスです。C# で HttpWebRequest を使用すると、GET および POST リクエストの送信、Cookie の処理、リクエスト ヘッダーの設定、パラメーターの追加など、さまざまな機能を実装できます。この記事では、HttpWebRequest の使用法を詳しく紹介し、一般的な例をいくつか示します。
ここに画像の説明を挿入します



1. GETリクエストを送信する

HttpWebRequest を使用した GET リクエストの送信は、ターゲット URL を指定するだけで簡単です。以下は GET リクエストを送信するサンプルコードです。

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

class Program
{
    
    
    static void Main()
    {
    
    
        string url = "https://www.example.com/api/data";
        
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "GET";
        
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        
        using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))
        {
    
    
            string responseData = streamReader.ReadToEnd();
            
            Console.WriteLine(responseData);
        }
    }
}

上記のコードでは、まずメソッドを通じてインスタンスWebRequest.Createを作成し、ターゲット URL を指定します。HttpWebRequest次に、リクエスト メソッドを GET に設定し、GetResponseそのメソッドを通じてリクエストを送信し、レスポンスを取得します。最後に、StreamReaderオブジェクトを通じて応答データが読み取られます。

ここに画像の説明を挿入します

2.POSTリクエストを送信する

POST リクエストの送信は GET リクエストの送信と似ており、リクエスト メソッドを POST に設定し、リクエスト本文にデータを設定するだけです。POST リクエストを送信するサンプル コードを次に示します。

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

class Program
{
    
    
    static void Main()
    {
    
    
        string url = "https://www.example.com/api/data";
        string requestData = "param1=value1&param2=value2";

        byte[] byteData = Encoding.UTF8.GetBytes(requestData);

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = byteData.Length;

        using (Stream requestStream = request.GetRequestStream())
        {
    
    
            requestStream.Write(byteData, 0, byteData.Length);
        }

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))
        {
    
    
            string responseData = streamReader.ReadToEnd();

            Console.WriteLine(responseData);
        }
    }
}

上記のコードでは、まずリクエストボディのデータをバイト配列に変換し、リクエストメソッドをPOSTに設定します。次に、Content-Typeヘッダーを に設定しapplication/x-www-form-urlencoded、リクエストボディの長さを設定します。次に、GetRequestStreamメソッドを通じてリクエスト ストリームを取得し、リクエスト データをリクエスト ストリームに書き込みます。リクエストを送信して応答を取得するプロセスは、GET リクエストを送信する場合と同じです。

ここに画像の説明を挿入します

3. リクエストヘッダーを設定し、Cookie を処理する

HttpWebRequest は、リクエスト ヘッダーを設定し、Cookie を処理するためのいくつかのメソッドとプロパティも提供します。以下は、リクエスト ヘッダーを設定し、Cookie を処理するためのサンプル コードです。

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

class Program
{
    
    
    static void Main()
    {
    
    
        string url = "https://www.example.com/api/data";
        
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "GET";
        
        // 设置请求头
        request.Headers["Authorization"] = "Bearer xxxxxxx";
        request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36";
        
        // 处理Cookie
        request.CookieContainer = new CookieContainer();
        request.CookieContainer.Add(new Uri(url), new Cookie("cookie1", "value1"));
        
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        
        using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))
        {
    
    
            string responseData = streamReader.ReadToEnd();
            
            Console.WriteLine(responseData);
        }
    }
}

上記のコードでは、request.Headers属性を使用してリクエスト ヘッダーのキーと値のペアを設定できます。UserAgentリクエストのブラウザ ID は、属性を設定することで偽装できます。CookieContainerオブジェクトを作成し、 AddCookie を追加するメソッドを使用して、Cookie を処理します。

4. パラメータを追加して応答を処理する

HttpWebRequest を使用してリクエストを送信する場合、いくつかのパラメーターを追加し、応答を受信した後に応答を処理する必要がある場合があります。パラメーターを追加して応答を処理するサンプル コードを次に示します。

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

class Program
{
    
    
    static void Main()
    {
    
    
        string url = "https://www.example.com/api/data";
        string requestData = "param1=value1&param2=value2";

        byte[] byteData = Encoding.UTF8.GetBytes(requestData);

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = byteData.Length;

        using (Stream requestStream = request.GetRequestStream())
        {
    
    
            requestStream.Write(byteData, 0, byteData.Length);
        }

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        
        // 处理响应
        HttpStatusCode statusCode = response.StatusCode;
        string statusDescription = response.StatusDescription;

        using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))
        {
    
    
            string responseData = streamReader.ReadToEnd();

            Console.WriteLine(responseData);
        }
    }
}

上記のコードでは、POST リクエストの送信時にいくつかのパラメーターが追加され、レスポンスのステータス コード、ステータスの説明、応答データが取得されます。

結論は

C# で HttpWebRequest を使用すると、HTTP リクエストを簡単に送受信し、さまざまな機能を実装できます。この記事では、GET および POST リクエストの送信、Cookie の処理、リクエスト ヘッダーの設定、パラメータの追加など、HttpWebRequest の使用方法を紹介します。必要に応じて柔軟に使用して、より強力な HTTP リクエスト機能を実現できます。この記事がお役に立てば幸いです!

おすすめ

転載: blog.csdn.net/qq_22120623/article/details/135081284