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