2017-01-18 8 views
2

Während ich die Anfrage an den Rest api posten wird das Programm abstürzen und Thread wurde abgebrochen wird auftreten. bitte beraten.Thread wurde in httpClient.PostAsync abgebrochen

public async Task<TResponse> Post<TRequest, TResponse>(string method, TRequest request) 
    { 
      JsonMediaTypeFormatter jsonFormat = new JsonMediaTypeFormatter 
      { 
       SerializerSettings = 
       { 
        ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore, 
        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, 
        PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None 
       } 
      }; 

      var response = await _httpClient.PostAsync(_baseUrl + method, request, jsonFormat); 
      var finalResponse = await response.Content.ReadAsAsync<TResponse>(); 

      return finalResponse; 
    } 

Bitte beachten Sie, dass keine Anfrage an den Server gesendet wird. durch die Art und Weise wird die _httpClient wie unten

 _httpClient = 
      new HttpClient(new HttpClientHandler 
       { 
        AutomaticDecompression = 
         System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate 
       }) 
       {Timeout = TimeSpan.FromSeconds(50)}; 
     _httpClient.DefaultRequestHeaders.Add("Authorization", "apikey " + apiKey); 

Antwort

2

definiert werden, habe ich es Figur alleine aus, stellt sich heraus, dass PostAsync wird eine andere Methode aufrufen, die den aktuellen Thread abzubrechen. Also habe ich das await Schlüsselwort entfernt und das Endergebnis erhalten.

var response = _httpClient.PostAsync(_baseUrl + method, request, jsonFormat).Result; 
Verwandte Themen