C# 傳送 HTTP 請求
阿新 • • 發佈:2021-08-12
本文內容:
- 概述
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