我正在构建一个类库来与API交互.我需要调用API并处理XML响应.我可以看到使用HttpClient进行异步连接的好处,但是我所做的是纯同步的,所以我看不到使用HttpWebRequest有什么显著的好处.

如果有人能透露一些情况,我将不胜感激.我不是那种为了使用新技术而使用新技术的人.

推荐答案

对于现在遇到这件事的人.NET5.0在HttpClient中增加了一个同步Send方法.https://github.com/dotnet/runtime/pull/34948

优点也是为什么在这里详细讨论-https://github.com/dotnet/runtime/issues/32125

因此,你可以用这个代替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();
}

这段代码只是一个简化的示例,还没有准备好投入生产.

Asp.net相关问答推荐

502 DotNet WebApplication的网关nginx已损坏

Reaction-Native SignalR连接在调试模式下工作,在释放模式下失败

如何在 ASP.NET RadioButtonList 中的项目之间添加空格

在 ASP.Net 中使用自定义 RoleProvider 时如何允许多个角色查看页面

有没有一种简单的方法可以将对象属性转换为字典

使用 IIS 的 ASP.NET 调试超时

如何从 URI 中删除 PROTOCOL

为什么 Asp.Net Identity IdentityDbContext 是一个黑盒?

当用户使表单无效时单击取消按钮时,如何清除 MVC 客户端验证错误?

Ef core:执行 MaxAsync 时序列不包含任何元素

如何解决 Kerberos 双跳问题?

如何验证文件上传的文件类型?

如何在asp.net中获取应用程序路径?

在 ASP.NET 中使用 Messenger Connect 客户端库时出现 Javascript 错误

@(at) 登录文件路径/字符串

ASP.NET MVC NonAction 含义

~/ 等价于 javascript

哪个事件先调用?母版页 Page_Load 或内容页 Page_Load

在 Visual Studio 2013 中更改项目端口号

Request.UserHostAddress 和 Request.ServerVariables["REMOTE_ADDR"].ToString() 有什么区别