使用HttpResponseMessage.Content.ReadAsStringAsync()时没有得到整个内容;

时间:2014-05-14 02:39:21

标签: c# json windows-phone-8 dotnet-httpclient

在我的Windows Phone 8应用程序中,我有以下代码:

private static async Task<string> GetJson(string url, string param)
{
    try
    {
        var client = new HttpClient();
        var request = new HttpRequestMessage(HttpMethod.Get, url + param);
        HttpResponseMessage response = await client.SendAsync(request);
        string responseBodyAsText = await response.Content.ReadAsStringAsync();
        return responseBodyAsText;
    }
    catch (Exception e)
    {
        Debug.WriteLine(e.StackTrace);
        return null;
    }

}

除了一件事,这种方法效果很好;所有内容都没有被Content.ReadStringAsync() - 方法捕获。

这是API回复请求的格式:

JSON
 -embedded
   -messages[]
 -links

当与像Fiddler这样的客户端做请求时,我得到了完整的响应。但是我的Windows Phone应用程序只获取消息数组,而不是links-object。这会导致我的序列化程序失败,因为我缺少JSON对象的一部分。

有谁知道为什么会这样?如果需要,我可以提供额外的代码。

1 个答案:

答案 0 :(得分:0)

您可以直接尝试 response.Content.ReadAsAsync(),而不是将响应作为字符串检索,然后将其解析为对象。