HttpClient读取不完整或格式错误的字符串

时间:2019-05-19 20:00:33

标签: json xamarin.forms json.net prism dotnet-httpclient

我想弄清楚我的应用程序的哪一部分(用PHP编写的Xamarin Forms和代理)有问题。首先,我认为我的代理服务器(用PHP编写)无法正确处理较长的数据集(即包含1.300.000个字符的json),并返回格式错误的响应,但是Postman的每个请求都为我提供了正确的JSON,并成功将其解码第三方工具。因此,我认为代理服务器运行良好。

问题是(我猜)我的Xamarin Forms(2.0.0-beta.22)应用中的解码响应。我正在使用HttpClient来读取以下代码的响应:

response.EnsureSuccessStatusCode();

var entries = new List<HistoryEntry>();
var content = await response.Content.ReadAsStringAsync();
_loggerService.Error(content);

response仅仅是GetAsync的{​​{1}}响应。问题是:HttpClient随机不完整/格式错误。说这是指缺少最后一个字符(content)或JSON键/值具有附加的}字符,这会破坏所有内容。不幸的是,我可以多次发出完全相同的请求,一旦请求生效,一次就没有。我发现这种行为仅在大量数据(如我之前提到的长JSON字符串)中才会发生。

"是否有可能不等待完整的响应或以任何方式更改我的响应字符串?如何找到错误下载数据的原因?

编辑21.05.2019:

只需复制有效的JSON(可在此处使用:https://github.com/jabools/xamarin/blob/master/json.txt),然后通过ReadAsStringAsync从Lumen应用返回它,结果仍然相同。希望有人能够重现此问题并为我解决此问题:(更多评论信息。

在C#中使用了以下代码:

response()->json(json_decode(..., true))

0 个答案:

没有答案