HttpResponseMessage.Content.ToString();返回 System.Net.Http.SteamContent

HttpResponseMessage.Content.ToString(); Comes back as System.Net.Http.SteamContent

我正在尝试使用 C# 中的 API,这是请求的代码。它应该是一个简单的 JSON API,但是我在这里发现了一些违规行为。

public static HttpResponseMessage sendRequest(List<Header> headers, string endpoint, string api_key, string api_secret)
    {

        using (var client = new HttpClient())
        {
            List<Header> headerlist = new List<Header>{};

            if(headers != null)
                headerlist = headers;

            List<Header> signed = Helpers.sign(endpoint, api_secret);
            foreach (Header header in signed)
            {
                headerlist.Add(header);
            }

            client.BaseAddress = new Uri("https://api.coinkite.com");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Add("X-CK-Key", api_key);

            foreach (Header header in headerlist)
            {
                client.DefaultRequestHeaders.Add(header.Name, header.Data);
            }

            HttpResponseMessage response = client.GetAsync(endpoint).Result;

            return response;

        }


    }

我正在通过

呼叫
HttpResponseMessage result = Requests.sendRequest(null, "/v1/my/self", api_key, api_secret);

return result.Content.ToString();

然而,当我写它来安慰时,它看起来像:

System.Net.Http.SteamContent

关于问题是什么的任何线索?我对流内容类型不太熟悉。

HttpContent 没有实现 ToString 方法。所以你需要使用result.Content.CopyToAsync(Stream)将结果内容复制到一个Stream。

然后您可以使用 StreamReader 读取该 Stream。

或者你可以使用 string resultString = result.Content.ReadAsStringAsync().Result; 读取结果作为字符串 directly.This 方法不需要使用 StreamReader 所以我建议这样。

在 HttpResponseMessage

上调用 GetResponse()
Stream stream = result.GetResponseStream();
StreamReader readStream = new StreamReader(stream, Encoding.UTF8);
return readStream.ReadToEnd();

如果只对内容感兴趣,可以直接改成字符串

HttpResponseMessage response = client.GetAsync(endpoint).Result;

string response = client.GetStringAsync(endpoint).Result;

https://msdn.microsoft.com/en-us/library/hh551746(v=vs.118).aspx