C# 实现 HTTP POST & GET 请求教程
4星 · 超过85%的资源 需积分: 10 24 浏览量
更新于2024-09-22
收藏 19KB TXT 举报
"C# 发送 POST 和 GET 请求的公共类"
C# 是一种常用的编程语言,用于构建各种应用程序,包括与服务器交互的 Web 应用。在 Web 开发中,POST 和 GET 是两种基本的 HTTP 请求方法。POST 通常用于向服务器提交数据,而 GET 用于从服务器获取数据。在 C# 中,可以使用 `System.Net` 命名空间中的类来实现这些功能。
以下是一个简单的 C# 类,名为 `HttpProc`,它提供了发送 POST 和 GET 请求的功能:
```csharp
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
public class HttpProc
{
public Encoding Encoding { get; set; } // 设置字符编码
public HttpProc()
{
this.Encoding = System.Text.Encoding.Default; // 初始化为默认编码
}
// 使用 GET 方法发送请求
public string Get(string url)
{
using (WebClient client = new WebClient())
{
client.Encoding = this.Encoding;
return client.DownloadString(url);
}
}
// 使用 POST 方法发送请求
public string Post(string url, Dictionary<string, string> formData)
{
string formDataStr = BuildFormData(formData);
byte[] data = Encoding.GetBytes(formDataStr);
using (WebClient client = new WebClient())
{
client.Encoding = this.Encoding;
client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
return client.UploadString(url, "POST", formDataStr);
}
}
// 构建 POST 数据字符串
private string BuildFormData(Dictionary<string, string> formData)
{
StringBuilder sb = new StringBuilder();
foreach (var pair in formData)
{
sb.AppendFormat("{0}={1}&", pair.Key, WebUtility.UrlEncode(pair.Value));
}
return sb.ToString().TrimEnd('&');
}
}
```
这个 `HttpProc` 类包含两个主要方法:`Get` 和 `Post`。`Get` 方法用于发送 GET 请求,而 `Post` 方法则用于发送 POST 请求。在 `Post` 方法中,我们首先将表单数据转换为字符串,然后通过 `UploadString` 方法发送到指定 URL。
以下是如何使用这个类的示例:
```csharp
HttpProc client = new HttpProc();
string responseHtml = client.Get("http://www.baidu.com"); // 获取百度首页内容
Console.WriteLine(responseHtml);
Dictionary<string, string> formData = new Dictionary<string, string>();
formData.Add("username", "zhangsan");
formData.Add("password", "123456");
responseHtml = client.Post("http://passport.baidu.com/?login", formData); // 发送登录请求
```
在这个例子中,我们首先创建了一个 `HttpProc` 对象,然后使用它来发送 GET 请求到百度主页,并打印返回的 HTML 内容。接着,我们创建了一个包含用户名和密码的表单数据字典,然后用这个数据字典调用 `Post` 方法发送一个模拟的登录请求。
请注意,实际应用中需要处理更多细节,如错误处理、超时设置、重试机制以及可能的证书验证等。这个简单的示例旨在展示如何使用 C# 进行基本的 HTTP 请求。
2016-07-20 上传
2023-06-01 上传
2024-09-03 上传
2024-09-30 上传
2023-05-18 上传
2023-05-25 上传
2023-05-28 上传
xingzhesi
- 粉丝: 8
- 资源: 5
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析