ejemplos consumir consume c# httpresponse dotnet-httpclient

c# - consumir - Hacer que el cliente http sea sincrónico: esperar respuesta



httpclient c# post (2)

Deberias hacer eso:

static async Task<JObect> Upload(string key, string url, string sourceFile, string targetFormat) { using (HttpClientHandler handler = new HttpClientHandler { Credentials = new NetworkCredential(key, "") }) using (HttpClient client = new HttpClient(handler)) { var request = new MultipartFormDataContent(); request.Add(new StringContent(targetFormat), "target_format"); request.Add(new StreamContent(File.OpenRead(sourceFile)), "source_file", new FileInfo(sourceFile).Name); using (HttpResponseMessage response = await client.PostAsync(url,request)) using (HttpContent content = response.Content) { string data = await content.ReadAsStringAsync(); return JsonObject.Parse(data); } } }

Tengo algún archivo para cargar y algunos de los archivos fallaron porque la publicación es asíncrona y no síncrona.

Estoy tratando de hacer esta llamada como llamada sincronizada ..

Quiero esperar la respuesta.

¿Cómo puedo hacer esta llamada como síncrona?

static async Task<JObect> Upload(string key, string url, string sourceFile, string targetFormat) { using (HttpClientHandler handler = new HttpClientHandler { Credentials = new NetworkCredential(key, "") }) using (HttpClient client = new HttpClient(handler)) { var request = new MultipartFormDataContent(); request.Add(new StringContent(targetFormat), "target_format"); request.Add(new StreamContent(File.OpenRead(sourceFile)), "source_file", new FileInfo(sourceFile).Name); using (HttpResponseMessage response = await client.PostAsync(url, request).ConfigureAwait(false)) using (HttpContent content = response.Content) { string data = await content.ReadAsStringAsync().ConfigureAwait(false); return JsonObject.Parse(data); } } }

Cualquier ayuda apreciada!


cambio

await content.ReadAsStringAsync().ConfigureAwait(false)

a

content.ReadAsStringAsync().Result

ReadAsStringAsync devuelve un objeto de tarea. el ''.Resultar'' al final de la línea le dice al compilador que devuelva la cadena interna.