我有這樣的代碼,調用this sample API call of the game Guild Wars 2HttpWebRequest的部分未能得到數據
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字節標記之後爲0。
在我的代碼中是否有錯誤,或者可能導致此問題?我能否以另一種方式調用API以獲得正確的完整響應?
可能重複【什麼是閱讀的GetResponseStream()的最好方法?(http://stackoverflow.com/questions/137285/what-is-最好的方式來讀取getresponsestream) – CodeCaster