RestSharp简单的HTTP请求辅助类

在.net中,using System.Net包可以使用HttpWebRequest发起一个HTTP请求:

            var posturl="http://localhost:8088/api/test";
            var req = HttpWebRequest.Create(posturl);
            req.Headers.Add("head", headData);
            req.Method = "POST";
            req.Timeout = 60000;
            var bodyBytes = Encoding.UTF8.GetBytes(bodyData);
            req.GetRequestStream().Write(bodyBytes, 0, bodyBytes.Length);
            var resp = req.GetResponse();
            var streamReader = new StreamReader(resp.GetResponseStream());
            string result = streamReader.ReadToEnd();
            resp.Close();
            streamReader.Close();
            req.Abort();
            return result;

这是使用.net原生的方法。这里需要处理流,还得关闭它们。而RestSharp封装好了这些东东,简洁易用,还能自主反序列化请求结果。下面来看看使用RestSharp后的代码:

var posturl="http://localhost:8088/api/test";
  RestClient client = new RestClient(posturl);
            client.Timeout = 60000;
            RestRequest request = new RestRequest(Method.POST);
            request.AddHeader("head", headData);
            request.AddParameter("body", encryptBody);
            string result = client.Execute(request).Content;
             return result;

明显省去了一半代码,这里还能反序列化:

string resultObj = client.Execute<RespMsg>(request);
RespMsg respMsg =resultObj.Data;
RestSharp 是一个流行的 .NET 库,用于简化与 RESTful 服务的交互。使用 RestSharp 发送 GET 请求相对简单,但通常 GET 请求不包含请求体(body),因为它们用于获取数据而不是发送数据。然而,某些 RESTful API 可能允许在 GET 请求中包含请求体,尽管这不是标准做法。 以下是如何使用 RestSharp 发送包含请求体的 GET 请求的示例: ```csharp using RestSharp; using System; using System.Collections.Generic; class Program { static void Main() { // 创建一个新的 RestSharp 客户端实例 var client = new RestClient("http://your-api-url.com"); // 创建一个 RestRequest 实例,将 GET 设置为请求方法 var request = new RestRequest(Method.GET); // 添加请求参数,这些参数通常用于 GET 请求 request.AddQueryParameter("param1", "value1"); request.AddQueryParameter("param2", "value2"); // 如果要发送请求体,需要设置 RequestFormat request.RequestFormat = DataFormat.Json; // 或者 DataFormat.Xml, DataFormat.Html, 等等 // 添加请求体内容 request.AddBody(new { key1 = "value1", key2 = "value2" }); // 执行请求 IRestResponse response = client.Execute(request); // 处理响应 Console.WriteLine(response.Content); } } ``` 请注意,虽然上面的代码在技术上可以工作,但是并不是所有的服务器都会处理带请求体的 GET 请求。在大多数情况下,你可能需要使用 POST 请求来发送请求体。如果服务器端确实允许带请求体的 GET 请求,上面的代码应该可以按照预期工作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值