用RequestBuilder 写一个发起post和get通用的请求示例
时间: 2024-09-11 20:01:18 浏览: 49
`RequestBuilder`通常是在.NET框架下的HttpClient库中用于构建HTTP请求的对象,它提供了一种方便的方式来构造和配置HTTP请求。以下是使用`RequestBuilder`创建POST和GET请求的一个通用示例:
```csharp
using System.Net.Http;
using System.Threading.Tasks;
public async Task<string> MakeGenericRequest(string method, string url, HttpContent content = null)
{
var httpClient = new HttpClient();
var requestBuilder = new HttpRequestMessage();
// 设置请求方法
switch (method.ToUpper())
{
case "GET":
requestBuilder.Method = HttpMethod.Get;
break;
case "POST":
requestBuilder.Method = HttpMethod.Post;
if (content != null)
requestBuilder.Content = content;
break;
default:
throw new ArgumentException("Invalid HTTP method");
}
// 设置URL
requestBuilder.RequestUri = new Uri(url);
// 发送请求并获取响应
HttpResponseMessage response = await httpClient.SendAsync(requestBuilder);
// 检查状态码,处理异常
response.EnsureSuccessStatusCode();
// 返回响应内容
return await response.Content.ReadAsStringAsync();
}
// 使用示例:
string requestBody = "{\"key\":\"value\"}";
HttpContent postContent = new StringContent(requestBody, Encoding.UTF8, "application/json");
// POST请求
string postResponse = await MakeGenericRequest("POST", "https://example.com/api/resource", postContent);
// GET请求
string getResponse = await MakeGenericRequest("GET", "https://example.com/somepage");
```
在这个例子中,`MakeGenericRequest`函数接受请求方法、URL和可选的内容作为参数,然后根据方法选择发送POST还是GET请求,并返回相应的响应结果。
阅读全文