【发布时间】:2013-11-01 16:36:28
【问题描述】:
我有这个代码,调用this sample API call of the game Guild Wars 2
HttpWebRequest request = HttpWebRequest.Create("https://api.guildwars2.com/v1/events.json?world_id=1001") as HttpWebRequest;
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
byte[] bytes = new byte[response.ContentLength];
Stream stream = response.GetResponseStream();
stream.Read(bytes, 0, bytes.Length);
string result = Encoding.Default.GetString(bytes);
这是对官方激战 2 API 的示例调用,应该以 JSON 格式返回事件列表及其状态。
如果您在浏览器中调用该地址并将数据粘贴到文本编辑器中,它会提供一个正确的 JSON 字符串,大小略大于 300 kb。
但是,当被此代码调用并查看生成的字节数组时,前 3800-3900 个字节已正确填充(数字因调用而异),但其余部分均为零。
response.ContentLength 指示流的正确长度,略大于 300k,并且使用 stream.ReadByte() 进行测试告诉我流确实提供了这 300k,它在 3850 字节标记之后只是零。
我的代码中是否有错误,或者是什么导致了这个问题?我可以通过其他方式调用 API 以获得正确、完整的响应吗?
【问题讨论】:
标签: c# httpwebrequest