public async Task <(ErrorResult ErrorResult, Packet Packet)> RequestAsync(Packet packet)
        {
            var packetData = packet.Serialize();
            var content    = new StringContent(packetData);

            try
            {
                var postResponse = await this.client.PostAsync(this.ApiUrl, content).ConfigureAwait(false);

                var rawResponse = await postResponse.Content.ReadAsStringAsync().ConfigureAwait(false);

                return(ErrorResult.Success(), Packet.Deserialize(rawResponse));
            }
            catch (Exception ex)
            {
                return(new ErrorResult(ErrorCode.InternalError, ex.Message, ex), null);
            }
        }