在HttpClient中获取HttpPost响应字符串

时间:2017-11-03 21:29:10

标签: c# asp.net-web-api http-post dotnet-httpclient

我有一个执行POST的web api并返回一个字符串:

[HttpPost]
    public string Post([FromBody] Property p)
    {
        // My code where I'll get success and/or Error string message
        if(success)
            return string.Format("OK");
        else
            return string.Format(Error);
    }

我有一个调用此HttpPost的.net:

HttpClient client = new HttpClient();
client.BaseAddress = new Uri(URL);

var myContent = JsonConvert.SerializeObject(myData);
var buffer = System.Text.Encoding.UTF8.GetBytes(myContent);
var byteContent = new ByteArrayContent(buffer);
byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

var result = client.PostAsync("", byteContent).Result;
var contents = result.Content.ReadAsStreamAsync().Result;

我希望在变量内容中包含值" OK"或错误字符串。但是,内容会收到System.IO.MemoryStream

如果我在邮差中跑,我会得到"好的"作为回报。

有谁知道为什么?

1 个答案:

答案 0 :(得分:1)

您应该使用ReadAsStringAsync方法:

var contents = result.Content.ReadAsStringAsync().Result;