我想弄清楚我的应用程序的哪一部分(用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))