c# - tipo - ¿Cómo publicar datos usando HttpClient?
webrequest c# (2)
Tengo this 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<string, string>("comment", comment),
new KeyValuePair<string, string>("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);