我试图用C#编写一些非常简单的代码,这些代码发出一个HTTPS post请求并返回结果,我对使用哪个库有点困惑。因为我的代码只需要运行一个HTTPS请求,所以我不需要任何异步,我觉得没有它会更简单。
System.Net.Http.HttpClient似乎不是为非异步使用而构建的,而System.Net.WebRequest在文档中到处都有关于它是如何被废弃的警告,我应该使用HttpClient。大多数针对WebRequest的教程和WebRequest问题最终都是5+,甚至10+。
有人能给我指点2021年用例的好教程或库吗?
发布于 2021-12-13 00:54:17
当然,在这方面使用HttpClient。它有一个可以使用的同步发送方法。
var client = new HttpClient();
var webRequest = new HttpRequestMessage(HttpMethod.Post, "http://your-api.com")
{
Content = new StringContent("{ 'some': 'value' }", Encoding.UTF8, "application/json")
};
var response = client.Send(webRequest);
using var reader = new StreamReader(response.Content.ReadAsStream());
return reader.ReadToEnd();
}
发布于 2021-12-13 00:48:26
我觉得你应该和System.Net.Http.HttpClient.Send(.)一起去
此函数不是异步的。
不过,使用异步函数也不是什么麻烦。他们只会返回任务。如果您访问返回任务的结果属性,线程将自动等待任务完成。因此,基本来说,它将同步处理请求。
https://stackoverflow.com/questions/70331817
复制