C#使用HTTPClient来提交数据,以下是代码实现的功能是向指定的Url使用Json格式提交数据。注意:在.Net Core中如何正确的使用HTTPClient,可以参考:https://lebang2020.cn/details/210120apxzwjkr.html
HttpClient httpClient = new HttpClient();
string url1 = @"https://lebbang2020.cn/api/StudentInfo/InfoByVehicleVIN";
var postArgs = new { VIN = "00152F3B1895355561317EAEAFD778843C864520" };
var response = await httpClient.PostAsync(url1, new StringContent(JsonConvert.SerializeObject(postArgs), Encoding.UTF8, "application/json"));
if (response.IsSuccessStatusCode)
{
var resStr = await response.Content.ReadAsStringAsync();
ApiResModel res = JsonConvert.DeserializeObject<ApiResModel>(resStr);
}
lebang.cn
正确姿势与常见坑
示例代码能跑通,但直接在生产里每次 new HttpClient 会耗尽套接字(TIME_WAIT 堆积),标准做法是 IHttpClientFactory 统一管理。
- 注册:services.AddHttpClient(),构造函数注入 IHttpClientFactory 再 CreateClient;
- JSON 提交:new StringContent(json, Encoding.UTF8, "application/json"),编码与类型一步到位;
- 响应处理:先 EnsureSuccessStatusCode() 再 ReadAsStringAsync,失败别吞异常;
- 复杂对象序列化用 System.Text.Json 或 Newtonsoft,注意命名策略与后端对齐;
- 高并发场景记得设置超时(.NET 5 起可用 HttpClient.Timeout)。
相关阅读
- ASP .Net Core 拦截恶意访问 中间件
- ASP.NET Core 获取当前运行环境 Development/Production
- ASP .Net Core appsettings.json获取配置值正确而简单的方法
- C#判断当前的网络是否可用(ping)