首页 > 编程语言 >c# Http请求封装工具类

c# Http请求封装工具类

时间:2024-02-22 11:24:42浏览次数:32  
标签:HTTP 封装 string c# request response new Http method

 1   public class HttpHelper
 2   {
 3       /// <summary>
 4       /// Get the content of a file from the specified URL.
 5       /// </summary>
 6       /// <param name="url">The URL to request.</param>
 7       /// <param name="method">The HTTP request method.</param>
 8       /// <param name="postData">The data for POST requests (optional).</param>
 9       /// <returns>The content of the file.</returns>
10       public static async Task<string> GetFileContent(string url, HttpMethod method, string postData = null)
11       {
12           using (HttpClient client = new HttpClient())
13           {
14               HttpRequestMessage request = new HttpRequestMessage(method, url);
15               if (method == HttpMethod.Post && !string.IsNullOrEmpty(postData))
16               {
17                   request.Content = new StringContent(postData);
18               }
19 
20               HttpResponseMessage response = await client.SendAsync(request);
21               if (response.IsSuccessStatusCode)
22               {
23                   return await response.Content.ReadAsStringAsync();
24               }
25               else
26               {
27                   Console.WriteLine($"Request failed: {response.StatusCode}");
28                   return null;
29               }
30           }
31       }
32 
33       /// <summary>
34       /// Make an HTTP request.
35       /// </summary>
36       /// <param name="baseUrl">The target URL.</param>
37       /// <param name="method">The request method.</param>
38       /// <param name="requestBody">The request body parameters.</param>
39       /// <returns></returns>
40       public static string HttpRequest(string baseUrl, Method method, RestRequest requestBody)
41       {
42           try
43           {
44               var client = new RestClient(baseUrl);
45 
46               requestBody.Method = method;
47               var response = client.Execute(requestBody);
48               if (response.StatusCode == HttpStatusCode.OK)
49               {
50                   return response.Content;
51               }
52 
53               throw new Exception("HTTP request result error: " + response.ErrorMessage);
54           }
55           catch (Exception ex)
56           {
57               throw new Exception("HTTP request failed: " + ex.Message);
58           }
59       }
60   }

请注意,当 response.StatusCode 状态不是ok时,我会抛出异常。如果不符合业务,请自行修改。

源码地址:https://github.com/yycb1994/DotNet.Working.Notes/tree/main/Working.Notes/Working.Tools

标签:HTTP,封装,string,c#,request,response,new,Http,method
From: https://www.cnblogs.com/INetIMVC/p/18026921

相关文章

  • 常用命令---dmidecode
    dmidecode是一个linux命令行工具,可以获取服务器的硬件信息,包括:CPU、methed、disk、BIOS等查看系统信息想要查看完整的系统信息。sudodmidecoce查看特定类型信息dmidecode可以查询各种类型的硬件信息sudodemidecode--type|-t<type>sudodemidecode--typebios--type:......
  • C#常用NLP库
    在DotNet开发中,有几个常用的NLP(自然语言处理)开发库可供选择。以下是几个流行的DotNetNLP库:Stanford.NLP:Stanford.NLP是一个开源的DotNet库,提供了各种NLP工具和算法,例如词性标注、命名实体识别、分词、语法分析等。它是基于Stanford大学的NLP工具包开发的,功能强大且经过广泛使用......
  • c#发送邮件的简单封装类
    1publicclassEmailSender2{3privatestringsmtpServer;4privateintsmtpPort;5privatestringsenderEmail;6privatestringsenderPassword;7privatestringsubjectPrefix;8privatestringemailContex......
  • Object方法 — Object.entries()
    Object方法—Object.entries()Object.entries()方法是JavaScript中的一个静态方法,用于返回一个给定对象自身可枚举属性的键值对数组。该方法接受一个对象作为参数,并将该对象的可枚举属性转换为一个二维数组,其中每个子数组包含两个元素:属性的键和属性的值。返回的数组中的......
  • Invicti v24.2.0 for Windows - 企业应用安全测试
    Invictiv24.2.0forWindows-企业应用安全测试InvictiStandard20Feb2024v24.2.0.43677请访问原文链接:https://sysin.org/blog/invicti/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgInvicti是一种自动化但完全可配置的Web应用程序安全扫描程序,使您能够......
  • Spring Kafka AckMode介绍
     原文链接:https://blog.csdn.net/qq1309664161/article/details/116994341一:AckMode介绍kafka消费端在读取数据后,会向Kafka服务端提交偏移量,来记录消费端读取数据的位置。提交偏移量分为手动提交和自动提交,为了保证数据读取的安全性,我们一般设置成手动提交偏移量。在Springb......
  • saltstack的使用
    1.安装https://docs.saltproject.io/salt/install-guide/en/latest/topics/overview.html1.1linux使用Bootstrapinstallation安装#下载文件bootstrap-salt.shcurl-obootstrap-salt.sh-Lhttps://bootstrap.saltproject.io#添加权限chmod+xbootstrap-salt.sh#安装#F......
  • blocks 单调栈、单调队列题解
    blocks题解:1、题面:2、分析:题意大概就是说,找一段最长的区间,并且这段区间的平均值>=k,那么我们可以对他的每一个值减去k,最终求和>=0即可。那我们需要对每个可能的左端点和右端点进行考虑,并以此让他们进行配对,看他们之间的区间和是否非负。那么我们先定住一个右端点,再依次考虑......
  • 分享个我自己封装的Datatable拓展
    废话不多说,直接上代码1publicstaticclassDataTableExtensions2{3///<summary>4///DetermineswhethertheDataTableisnullorempty.5///</summary>6///<paramname="dt">TheDataTabletocheck.<......
  • 05-JavaScript基础语法
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>JS-基础语法</title></head><body></body><script>//输出语句//1.alert()弹出警告框aler......