Comment obtenir du contenu du corps à partir d'un httpclient appel?

J'ai essayé de comprendre comment lire le contenu d'un httpclient appel, et je n'arrive pas à l'obtenir. Le statut de la réponse que je reçois est de 200, mais je ne peux pas comprendre comment obtenir la réelle Json retourné, qui est tout ce dont j'ai besoin!

Voici mon code:

async Task<string> GetResponseString(string text)
{
    var httpClient = new HttpClient();

    var parameters = new Dictionary<string, string>();
    parameters["text"] = text;
    Task<HttpResponseMessage> response = 
        httpClient.PostAsync(BaseUri, new FormUrlEncodedContent(parameters));

    return await response.Result.Content.ReadAsStringAsync();
}

Et je suis juste de l'appeler à partir d'une méthode:

Task<string> result =  GetResponseString(text);

Et C'est ce que je reçois

response Id = 89, Status = RanToCompletion, Method = "{null}", Result = "StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:\r\n{\r\n Connection: keep-alive\r\n Date: Mon, 27 Oct 2014 21:56:43 GMT\r\n ETag: \"5a266b16b9dccea99d3e76bf8c1253e0\"\r\n Server: nginx/0.7.65\r\n Content-Length: 125\r\n Content-Type: application/json\r\n}" System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>

Mise à jour: C'est mon code actuel par Nathan de la réponse ci-dessous

    async Task<string> GetResponseString(string text)
    {
        var httpClient = new HttpClient();

        var parameters = new Dictionary<string, string>();
        parameters["text"] = text;

        var response = await httpClient.PostAsync(BaseUri, new FormUrlEncodedContent(parameters));
        var contents = await response.Content.ReadAsStringAsync();

        return contents;
    }

Et je l'appelle de cette méthode....

 string AnalyzeSingle(string text)
    {
        try
        {
            Task<string> result = GetResponseString(text);
            var model = JsonConvert.DeserializeObject<SentimentJsonModel>(result.Result);

            if (Convert.ToInt16(model.pos) == 1)
            {
                _numRetries = 0;
                return "positive";
            }

            if (Convert.ToInt16(model.neg) == 1)
            {
                _numRetries = 0;
                return "negative";
            }

            if (Convert.ToInt16(model.mid) == 1)
            {
                _numRetries = 0;
                return "neutral";
            }

            return "";
        }
        catch (Exception e)
        {
            if (_numRetries > 3)
            {
                LogThis(string.Format("Exception caught [{0}] .... skipping", e.Message));
                _numRetries = 0;
                return "";
            }
            _numRetries++;
            return AnalyzeSingle(text);
        }
    }

Et continue de fonctionner à jamais, Il frappe à la ligne
var model = JsonConvert.DeserializeObject<SentimentJsonModel>(result.Result);
Une fois, et il continue à aller sans s'arrêter à un autre point d'arrêt.

Quand je fais une pause de l'exécution, Il dit

Id = Impossible d'évaluer l'expression, car le code de la méthode actuelle est optimisé., Statut = Impossible d'évaluer l'expression, car le code de la méthode actuelle est optimisé., Méthode = Impossible d'évaluer l'expression, car le code de la méthode actuelle est optimisé., Résultat = Impossible d'évaluer l'expression, car le code de la méthode actuelle est optimisé.

.. Je continue l'exécution, mais il fonctionne toujours. Pas sûr de ce que le problème est

  • Où et comment est _numRetries défini?
  • Son dans le champ d'application de la classe et est initialisé avec un 0 dans le constructeur. AnalyzeSingle() est le seul endroit où je l'utilise.
  • Êtes-vous en cours d'exécution en mode Debug? L'optimisation de la question pourrait être parce que vous êtes en cours d'exécution en mode Release.
  • Je suis actuellement sur Debug/ iisExpress