я программирую приложение для моего исследования.
Я пытаюсь использовать gRP C в Xamarin.Forms.
gRP C находится в отдельной либрии (. NET Стандарт 2.1). Если я использую код в WPF-Core Project, все работает нормально.
Но если я пытаюсь использовать то же самое в моем Xamarin.Forms-Project, соединение не работает.
, если Я использую Строка соединения "http://my.server.com: 5050 ", я получаю эти исключения
Error starting gRPC call: unexpected end of stream on Connection{my.server.com:5050, proxy=DIRECT hostAddress=5.189.149.82 cipherSuite=none protocol=http/1.1} (recycle count=0)
, если я использую версию SSL "https://my.server.com: 5050 " Я получаю эти исключения
Error starting gRPC call: Connection closed by peer
Вот код gRP C -Libary
...
if (connectionString.Contains("http://"))
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
channel = GrpcChannel.ForAddress(connectionString);
client = new Haushaltsbuch.HaushaltsbuchClient(channel);
SuccsessReply reply = new SuccsessReply { Result = false };
try
{
reply = client.Login(new UserRequest
{
User = new GRPC_User
{
Username = username,
PassHash = passHash
}
});
}
catch (RpcException e) when (e.Status.Detail.Contains("The SSL connection could not be established"))
{
client = null;
throw new CommunicationException("Fehler mit SSL-Zertifikat des Servers", e);
}
catch (RpcException e)
{
client = null;
throw new CommunicationException("Server nicht erreichbar", e);
}
...
Я только студент, и если я Google, то он говорит, что Xamarin Forms поддерживает GRP C. Но почему он не работает?
. Android Проект имеет пакет GRP C .Core от NuGet.