我正在构建一个类库来与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相关问答推荐

使用 aspnet core SignalR 客户端为 VSIX 项目.

禁用托管优化并重新启动调试实际上在 Visual Studio 中更改了哪些设置?

IIS Request.UserHostAddress 返回 IPV6 (::1),即使禁用了 IPV6

判断会话是否为空

免费的 ASP.Net 和/或 CSS 主题

ASP.NET 日期时间 Select 器

MVC 3视图中的当前上下文中不存在名称'HTML'

使用 Moq 验证活动注册

从 IFrame 重定向父页面

如何判断用户代理是 ipad 还是 iphone?

C# 7 本地函数未按预期工作且未显示错误

这个rendersection的代码是什么意思?

InvalidOperationException:无法为角色创建 DbSet,因为此类型未包含在上下文模型中

Windows Azure PaaS(网络角色)的真正替代品?

ASP.NET MVC 和 httpRuntime executionTimeout

为在 ASP.NET Web API 中使用 User.Identity.Name 的方法编写单元测试

如何判断字符串的第一个字符是否是字母,C#中的任何字母

x-powered by是什么意思?

DataTable 不包含 AsEnumerable 的定义

如何创建代表 colored颜色 的随机十六进制字符串?