async attendent pour un HttpClient.PostAsync appel

Je suis d'essayer d'envelopper un appel à PostAsync donc je n'ai pas de ré-encoder la séquence d'appel sur mon code de base. La question que je vais avoir est la HttpResponseMessage j'ai affecté à partir de l'appel n'est pas le même que celui de la consommation de mes appels de méthode. Voici le code:

internal class RestHttpClient
{
    public HttpResponseMessage ResponseMessage = new HttpResponseMessage();

    public async void SendRequest(string adaptiveUri, string xmlRequest)
    {
        using (HttpClient httpClient = new HttpClient())
        {
            StringContent httpConent = new StringContent(xmlRequest, Encoding.UTF8);

            try
            {
                ResponseMessage = await httpClient.PostAsync(adaptiveUri, httpConent);
            }
            catch (Exception ex)
            {
                ResponseMessage.StatusCode = HttpStatusCode.InternalServerError;
                ResponseMessage.ReasonPhrase = string.Format("RestHttpClient.SendRequest failed: {0}", ex);
            }
        }
    }
}

Et je vais essayer d'appeler la méthode comme suit:

RestHttpClient restHttpClient = new RestHttpClient();

restHttpClient.SendRequest(adaptiveUri, xmlRequest);

return restHttpClient.ResponseMessage;

Quand je fais l'appel de la ResponseMessage objet contient toujours un statut Ok, même si ce n'est pas ce qui est effectivement retourné à partir de la PostAsync appel.

  • Ce n'est pas un doublon. Cette question n'est pas de répondre à l'OP du tout un problème
  • basée sur le titre, il se doit... mais il n'a pas... supprimé.
InformationsquelleAutor EricR | 2015-06-15