Ejemplo n.º 1
0
        public async Task <ProtobufModelDto> GetProtoBufData()
        {
            ProtobufModelDto protobufModelDto = new ProtobufModelDto();

            try
            {
                HttpClient client = new HttpClient();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-protobuf"));

                string sURL = "http://192.168.0.102:45455/api/values/4";
                HttpResponseMessage httpResponse = await client.GetAsync(sURL);

                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    var streamData = httpResponse.Content.ReadAsStreamAsync().Result;

                    protobufModelDto = Serializer.Deserialize <ProtobufModelDto>(streamData);


                    // Parse the response body. Blocking!
                    //var p = httpResponse.Content.ReadAsAsync<ProtobufModelDto>(new[] { new ProtoBufFormatter() }).Result;
                    //Console.WriteLine("{0}\t{1};\t{2}", p.Name, p.StringValue, p.Id);
                }
                else
                {
                    Console.WriteLine("{0} ({1})", (int)httpResponse.StatusCode, httpResponse.ReasonPhrase);
                }

                return(protobufModelDto);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private async void BtnPost_Clicked(object sender, EventArgs e)
        {
            lblResult.Text      = string.Empty;
            lblResult.TextColor = Color.Black;
            WebHelper webHelper = new WebHelper();

            try
            {
                ProtobufModelDto protobufModelDto = await webHelper.PostProtoBufData();

                if (!string.IsNullOrEmpty(protobufModelDto.Name))
                {
                    lblResult.Text = "Result = " + " Id : " + protobufModelDto.Id + ", Name : " + protobufModelDto.Name + ", StringValue : " + protobufModelDto.StringValue;
                }
                else
                {
                    lblResult.TextColor = Color.Red;
                    lblResult.Text      = "Sorry, something went wrong";
                }
            }
            catch (Exception ex)
            {
                lblResult.TextColor = Color.Red;
                lblResult.Text      = ex.Message;
            }
        }
Ejemplo n.º 3
0
        public async Task <ProtobufModelDto> PostProtoBufData()
        {
            string sURL = "http://192.168.0.102:45455/api/values";

            try
            {
                var client = new HttpClient();

                var request = new HttpRequestMessage(HttpMethod.Post, sURL);
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-protobuf"));

                var protobufModelDto = new ProtobufModelDto
                {
                    Id          = 1234,
                    Name        = "ganesh gaikwad",
                    StringValue = "*****@*****.**"
                };

                using (MemoryStream stream = new MemoryStream())
                {
                    ProtoBuf.Serializer.Serialize(stream, protobufModelDto);
                    request.Content = new ByteArrayContent(stream.ToArray());

                    var response = client.SendAsync(request).Result;
                    if (response.IsSuccessStatusCode)
                    {
                        var reader = ProtoBuf.Serializer.Deserialize <ProtobufModelDto>(await response.Content.ReadAsStreamAsync());

                        return(reader);
                    }
                }

                return(protobufModelDto);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }