我正在构建一个类库来与 API 交互。我需要调用 API 并处理 XML 响应。我可以看到使用HttpClient异步连接的好处,但我所做的是纯粹同步的,所以我看不到使用HttpWebRequest.
HttpClient
HttpWebRequest
如果有人能阐明任何观点,我将不胜感激。我不是为了新技术而使用新技术的人。
对于现在遇到此问题的任何人,.NET 5.0 已将同步Send方法添加到HttpClient. https://github.com/dotnet/runtime/pull/34948
Send
关于为什么在这里详细讨论的优点:https ://github.com/dotnet/runtime/issues/32125
因此,您可以使用 this 而不是SendAsync. 例如
SendAsync
public string GetValue() { 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(); }
这段代码只是一个简化的例子——它还没有准备好生产。