C# 發送 HTTP 請求


本文內容:

  • 概述 HTTP 請求
  • 使用 GET 方法發送請求
  • 使用 POST 方法發送請求

1、 概述

HTTP 請求通常是瀏覽器向服務器發送的,不過 C# 中也可以發送 HTTP 請求,本文講解使用 C# 發送 HTTP 請求。

我這里使用的控制台(console)應用程序,其他都類似。

2、發送 GET 請求

發送請求使用 HttpClient 類,所以需要引入一下文件:

using System.Net.Http;

引入之后,初始化一個 HttpClient 類,HttpClient 類有一個 GetStringAsync 方法可以發送 GET 請求,參數為目標地址(URL)。

namespace testdemo
{
    class Program
    {
        private static readonly HttpClient client = new HttpClient();
  
        public  static  void Main()
        {
            Program.get();  
        }

        public static async void get(){
            var responseString = await client.GetStringAsync("http://127.0.0.1:23/api");
            Console.WriteLine(responseString);
        }
    }
  
}

使用抓包工具分析,發送的 HTTP 請求的格式如下:

GET /api HTTP/1.1
Host: 127.0.0.1:23

3、發送 POST 請求

發送 post 請求也大致相似,我們要使用 PostAsync 方法。

using System.Collections.Generic;

namespace testdemo
{
    class Program
    {
        private static readonly HttpClient client = new HttpClient();
  
        public  static  void Main()
        {
            Program.post();
	    Console.Read();
        }

        public static async void post(){
            // 創建一個字典,添加數據
            Dictionary<string, string> values = new Dictionary<string, string>();
            values.Add("name", "hello");
            values.Add("age", "12");

            // 數據轉化為 key=val 格式
            var content = new FormUrlEncodedContent(values);

            // 發送請求
            var response = await client.PostAsync("http://127.0.0.1:23", content);
            // 獲取數據
            var responseString = await response.Content.ReadAsStringAsync();
            Console.WriteLine(responseString);
        }
    }
  
}

發送的 HTTP 請求的格式如下:

POST / HTTP/1.1
Host: 127.0.0.1:23
Content-Type: application/x-www-form-urlencoded
Content-Length: 17

name=hello&age=12


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM