我正在尝试通过HTTP 2.0请求数据。我正在使用.Net Core 2.2中的HttpClient。我使用Windows 10,但将在生产环境中的Linux上运行。问题在于响应上的版本似乎总是“ 1.1”。我做错了什么?
using (var client = new HttpClient())
{
using (var request = new HttpRequestMessage(new HttpMethod("GET"),
"https://duckduckgo.com/"
))
{
request.Version = new Version(2, 0);
var response = await client.SendAsync(request);
Console.WriteLine(response.Version);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试运行Dot net conf 2019 keynote中的 xamarin 表单示例。我已经托管了 grpc 服务,.net core 控制台应用程序可以毫无问题地从中获取数据。但是,当运行 xamarin 应用程序时,ALPN 协商(客户端问候)发生在 http 1.1 上,因此 grpc 调用失败。 源代码可在此处获取
错误消息:Grpc.Core.RpcException:状态(StatusCode=Internal,Detail=“gRPC 响应错误。响应协议降级为 HTTP/1.1。”
调试器显示 xamarin 上使用的 SocketsHttpHandler 没有支持 Http 2 的代码。
问题:
配置
使用共享运行时:true
Mono 共享运行时版本(如在 Android 设备上看到的):10.1.0-18。
Windows 10 上的 Visual studio 2019:
Xamarin.Android SDK 10.1.4.0 (d16-4/e44d1ae)
Xamarin.Android 参考程序集和 MSBuild 支持。
单声道:fd9f379
Java.Interop:xamarin/java.interop/d16-4@c4e569f
Xamarin.Android工具:xamarin/xamarin-android-tools/d16-5@9f4ed4b
我尝试过的事情: