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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!