C# HTTP 客户端库RestSharp
|
admin
2024年5月27日 7:57
本文热度 887
|
摘要
RestSharp 是一个用于在 C# 中发送 HTTP 请求的开源库。它简化了与 RESTful API 进行交互的过程,使开发人员可以轻松地发送 GET、POST、PUT、DELETE 等 HTTP 请求,并处理响应数据。RestSharp 提供了一种简洁的方式来构建和发送 HTTP 请求,使得与服务器进行数据交换变得更加容易。
正文
主要应用场景包括:
好处
常用方法
Execute: 执行一个请求并返回响应数据。
ExecuteAsync: 异步地执行一个请求并返回响应数据。
AddParameter: 添加请求参数,如查询字符串、请求体等。
AddHeader: 添加请求头。
AddJsonBody: 添加 JSON 格式的请求体。
AddFile: 添加文件作为请求的一部分。
AddCookie: 添加 Cookie。
AddUrlSegment: 替换 URL 中的占位符。
常用属性
BaseUrl: 设置请求的基础 URL。
Timeout: 设置请求的超时时间。
Method: 设置请求的 HTTP 方法,如 GET、POST、PUT、DELETE 等。
RequestFormat: 设置请求的数据格式,如 XML、JSON 等。
Parameters: 获取或设置请求的参数列表。
Headers: 获取或设置请求的头部信息。
StatusCode: 获取响应的 HTTP 状态码。
Content: 获取响应的原始内容。
几个例子
nuget 安装 RestSharp
Get请求
private void btnGet_Click(object sender, EventArgs e)
{
var client = new RestClient("https://localhost:7137/api/");
var request = new RestRequest("User/User?id=2", Method.Get);
var response = client.Execute<x_user>(request);
var content = response.Content;
MessageBox.Show(content, "GET Response");
}
Post请求
private void btnPost_Click(object sender, EventArgs e)
{
var client = new RestClient("https://localhost:7137/api/");
var request = new RestRequest("User/SaveDb", Method.Post);
request.AddJsonBody(new { id = 100, name = "John", age = 16, job = "IT" });
var response = client.Execute<x_user>(request);
var content = response.Content;
MessageBox.Show(content, "POST Response");
}
添加请求头和处理响应
private void btnHeader_Click(object sender, EventArgs e)
{
var client = new RestClient("https://localhost:7137/api/");
var request = new RestRequest("User/SaveDb", Method.Post);
request.AddJsonBody(new { id = 100, name = "John", age = 16, job = "IT" });
//这个是添加Token请求,在现在应用极广
request.AddHeader("Authorization", "Bearer YOUR_ACCESS_TOKEN");
var response = client.Execute<x_user>(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
// 处理响应数据
var content = response.Content;
MessageBox.Show(content, "Response");
}
else
{
MessageBox.Show("Request failed with status: " + response.StatusCode, "Error");
}
}
上传文件
private void btnUpload_Click(object sender, EventArgs e)
{
var client = new RestClient("https://localhost:7137/api");
var request = new RestRequest("User/UploadFile",Method.Post);
// 添加要上传的文件
request.AddFile("file", @"d:\国学.jpg");
// 可选:如果有其他参数需要一同提交,可以使用 AddParameter 方法
// request.AddParameter("paramName", "paramValue");
var response = client.Execute<bool>(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
Console.WriteLine("上传文件成功");
}
else
{
Console.WriteLine("上传出错,错误代码: " + response.StatusCode);
}
}
该文章在 2024/5/27 10:44:53 编辑过