¿Cómo publicar datos usando HttpClient?

Tengo este HttpClient de Nuget.

Cuando quiero obtener datos, lo hago de esta manera:

var response = await httpClient.GetAsync(url); var data = await response.Content.ReadAsStringAsync(); 

¿Pero el problema es que no sé cómo publicar datos? Tengo que enviar una solicitud posterior y enviar estos valores dentro de él: comment="hello world" y questionId = 1 . estas pueden ser las propiedades de una clase, no lo sé.

Actualizar No sé cómo agregar esos valores a HttpContent ya que el método de publicación lo necesita. httClient.Post(string, HttpContent);

Necesitas usar:

 await client.PostAsync(uri, content); 

Algo como eso:

 var comment = "hello world"; var questionId = 1; var formContent = new FormUrlEncodedContent(new[] { new KeyValuePair("comment", comment), new KeyValuePair("questionId", questionId) }); var myHttpClient = new HttpClient(); var response = await myHttpClient.PostAsync(uri.ToString(), formContent); 

Y si necesita obtener la respuesta después de la publicación, debe usar:

 var stringContent = await response.Content.ReadAsStringAsync(); 

Espero eso ayude 😉

Use el método UploadStringAsync:

  WebClient webClient = new WebClient(); webClient.UploadStringCompleted += (s, e) => { if (e.Error != null) { //handle your error here } else { //post was successful, so do what you need to do here } }; webClient.UploadStringAsync(new Uri(yourUri), UriKind.Absolute), "POST", yourParameters);