2016-10-23 7 views
1

Hallo ich this guide folgende binSo verwenden Httpclient ohne async

static async Task<Product> GetProductAsync(string path) 
{ 
    Product product = null; 
    HttpResponseMessage response = await client.GetAsync(path); 
    if (response.IsSuccessStatusCode) 
    { 
     product = await response.Content.ReadAsAsync<Product>(); 
    } 
    return product; 
} 

ich dieses Beispiel auf meinem Code verwenden, und ich möchte wissen, ist es eine Möglichkeit, HttpClient ohne async/await zu verwenden und wie kann ich nur bekommen Antwortkette?

Vielen Dank im Voraus

+0

können Sie dies beziehen: http://stackoverflow.com/questions/31129873/make-http-client-synchronous-wait-for-response –

+2

Warum nicht 'WebClient.DownloadString' anstatt zu verdrehen' HttpClient' in Möglichkeiten soll nicht verwendet werden? – spender

Antwort

-3

Natürlich können Sie:

public static string Method(string path) 
{ 
    using (var client = new HttpClient()) 
    { 
     var response = client.GetAsync(path).Result; 
     if (response.IsSuccessStatusCode) 
     { 
      var responseContent = response.Content; 
      return responseContent.ReadAsStringAsync().Result; 
     } 
    } 
} 
+2

Nur zur Erinnerung: Das kann Deadlocks in ASP.NET und WinForms verursachen. Die Verwendung von '.Result' oder' .Wait() 'mit TPL sollte mit Vorsicht erfolgen. – MarcinJuraszek

+0

Vielen Dank, es funktioniert. –

+0

Sehen Sie dies für Informationen über Deadlocks https://stackoverflow.com/questions/32195595/avoiding-deadlock-with-httpclient –

5

ist es eine Möglichkeit, ohne Httpclient async/warten zu verwenden und wie kann ich nur String Antwort bekommen?

HttpClient wurde speziell für die asynchrone Verwendung entwickelt. Wenn Sie synchron eine Zeichenfolge herunterladen möchten, verwenden Sie WebClient.DownloadString.

+1

Hah! Ich habe zu diesem Zweck nur einen Kommentar hinterlassen. Die richtige Antwort. – spender

+0

Danke, aber ich folge nur der Anleitung, die ich in der Frage –

+1

@KumarJ angegeben habe .: Teil des Folgens eines Leitfadens ist zu wissen, was geändert werden muss. –