C# Xamarin表单和gRPC:服务器返回了无效或无法识别的响应
我正在尝试从gRPC服务获取响应,但我得到一个错误,即当我从Xamarin应用程序调用时,服务器返回了无效或无法识别的响应。但是,如果我使用一个WPF客户机,该客户机使用与Xamarin应用程序相同的gRPC客户机库,那么它可以正常工作,我会从服务中得到响应 服务代码如下:C# Xamarin表单和gRPC:服务器返回了无效或无法识别的响应,c#,xamarin,xamarin.forms,grpc,C#,Xamarin,Xamarin.forms,Grpc,我正在尝试从gRPC服务获取响应,但我得到一个错误,即当我从Xamarin应用程序调用时,服务器返回了无效或无法识别的响应。但是,如果我使用一个WPF客户机,该客户机使用与Xamarin应用程序相同的gRPC客户机库,那么它可以正常工作,我会从服务中得到响应 服务代码如下: webBuilder.ConfigureKestrel(options => { options.Listen(IPAddress.Any
webBuilder.ConfigureKestrel(options =>
{
options.Listen(IPAddress.Any, 5001, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http2;
listenOptions.UseHttps("server.pfx", "1111");
});
});
webBuilder.UseStartup<Startup>();
我做错了什么?起初我以为这是因为android不能使用http,所以我需要https,但现在我使用https。我确实忽略了来自服务器的任何证书,这可能是原因吗?但是错误消息可能与SSL或类似的东西有关,而不是告诉用户响应无法识别
谢谢
编辑:在承载该服务的控制台应用程序中,我得到了以下失败:HTTP/2 over TLS未在仅HTTP/2的端点上协商。您可以尝试使用
Grpc.Core
或Grpc Web
,如中所述
使用gRPC.Net.Client通过HTTP/2调用gRPC当前不可用
支持Xamarin。我们正在努力以一种全新的方式改进HTTP/2支持
未来的Xamarin版本。Grpc.Core和Grpc网络是可行的替代方案
这是今天的工作
你可以参考
HttpClientHandler miHandler = new HttpClientHandler();
miHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
GrpcChannelOptions misOpciones = new GrpcChannelOptions() { HttpHandler = miHandler };
var miChannel = GrpcChannel.ForAddress("https://192.168.1.134:5001", misOpciones);