C# HTTP 客户端库RestSharp
				
									
					
					
						|  | 
							admin 2024年5月27日 7:57
								本文热度 2503 | 
					
				 
				摘要
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 编辑过