程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Xamarin 表单和 gRPC:服务器返回无效或无法识别的响应大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Xamarin 表单和 gRPC:服务器返回无效或无法识别的响应?

开发过程中遇到Xamarin 表单和 gRPC:服务器返回无效或无法识别的响应的问题如何解决?下面主要结合日常开发的经验,给出你关于Xamarin 表单和 gRPC:服务器返回无效或无法识别的响应的解决方法建议,希望对你解决Xamarin 表单和 gRPC:服务器返回无效或无法识别的响应有所启发或帮助;

我正在尝试从 gRPC 服务获得响应,但是当我从 Xamarin 应用程序进行调用时,我收到服务器返回无效或无法识别的响应的错误。但是,如果我使用 WPF 客户端,它使用与 Xamarin 应用程序相同的 gRPC 客户端库,它会按预期工作,我会从服务获得响应。

服务代码是这样的

            webBuilder.ConfigureKestrel(options =>
            {
                options.Listen(Ipaddress.Any,5001,Listenoptions =>
                {
                    Listenoptions.Protocols = httpProtocols.http2;
                    ListenoptionS.Usehttps("server.pfx","1111");
                });
            });
            webBuilder.UseStartup<Startup>();

客户端库:

        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);

我做错了什么?起初我以是因为从androID我不能使用http,我需要https,但现在我使用https。我确实忽略了来自服务器的任何证书,这可能是原因吗?但是错误消息将与 SSL 或类似内容相关,而不是告诉响应未被识别。

谢谢。

编辑:在托管服务的控制台应用程序中,我得到了这个失败:基于 TLS 的 http/2 未在仅 http/2 的端点上协商。

解决方法

您可以尝试使用 documentation 中提到的 Grpc.CoregRPC-Web

目前不支持使用 Grpc.Net.Client 通过 http/2 调用 gRPC Xamarin 支持。我们正在努力改进 http/2 支持 未来的 Xamarin 版本。 Grpc.Core 和 gRPC-Web 是可行的替代方案 今天的工作。

可以参https://stackoverflow.com/a/60362990/10768653。

大佬总结

以上是大佬教程为你收集整理的Xamarin 表单和 gRPC:服务器返回无效或无法识别的响应全部内容,希望文章能够帮你解决Xamarin 表单和 gRPC:服务器返回无效或无法识别的响应所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。