GET方法一般用于获取资源,请求的数据会被附加在URL的查询字符串中。HttpClient发送GET请求的步骤如下:
- 创建HttpClient实例;
- 构建要发送的HttpRequestMessage,设置HTTP方法为HttpMethod.Get,URL为要访问的网址(包括查询字符串参数)等;
- 调用HttpClient实例的GetAsync方法发送请求,并接收响应;
- 使用HttpResponseMessage对象处理响应,获取响应内容,包括响应头、响应正文等。
示例代码如下:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 创建HttpClient实例
HttpClient client = new HttpClient();
// 构建要发送的HttpRequestMessage
string url = "https://www.example.com/api/products?id=12345";
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);
try
{
// 发送请求,并接收响应
HttpResponseMessage response = await client.SendAsync(request);
// 处理响应,获取响应内容
string content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
// 释放HttpClient实例
client.Dispose();
}
Console.ReadLine();
}
}
该程序使用HttpClient发送了一个GET请求到https://www.example.com/api/products?id=12345,其中id=12345是一个查询字符串参数,用于指定要获取的产品ID。
POST方法一般用于提交数据,请求的数据会被放在请求正文中。HttpClient发送POST请求的步骤如下:
- 创建HttpClient实例;
- 构建要发送的HttpRequestMessage,设置HTTP方法为HttpMethod.Post,URL为要访问的网址等;
- 在HttpRequestMessage对象的Content属性中设置要提交的数据(可以是一个字符串、字节数组或自定义的HttpContent对象);
- 调用HttpClient实例的SendAsync方法发送请求,并接收响应;
- 使用HttpResponseMessage对象处理响应,获取响应内容,包括响应头、响应正文等。
示例代码如下:
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 创建HttpClient实例
HttpClient client = new HttpClient();
// 构建要发送的HttpRequestMessage
string url = "https://www.example.com/api/products";
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, url);
// 设置请求内容
string data = "{\"name\":\"product name\",\"price\":9.99}";
request.Content = new StringContent(data, Encoding.UTF8, "application/json");
try
{
// 发送请求,并接收响应
HttpResponseMessage response = await client.SendAsync(request);
// 处理响应,获取响应内容
string content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
// 释放HttpClient实例
client.Dispose();
}
Console.ReadLine();
}
}
该程序使用HttpClient发送了一个POST请求到https://www.example.com/api/products,请求正文是一个JSON格式的字符串,表示要创建一个产品,包括名称和价格两个属性。