我正在使用最新版本的TweetSharp来加载用户的个人资料。
首先,我使用ListFollowerIdsFor
方法加载用户的所有关注者。
之后,我将所有ID分成最多100个ID。
var ids = newUsersIds.Skip(i * 100).Take(100).Distinct().ToList(); var users = service.ListUserProfilesFor(new ListUserProfilesForOptions { UserId = ids });
有时我会在这一行得到StackoverflowException
。
调用堆栈中的最后两行:
The thread '<No Name>' (0x17a0) has exited with code 0 (0x0).
A first chance exception of type 'System.Net.WebException' occurred in System.dll
中的递归
TweetSharp.dll!TweetSharp.JsonSerializer.DeserializeContent(string content, System.Type type) Line 168 + 0x1b bytes C#
TweetSharp.dll!TweetSharp.JsonSerializer.DeserializeSingle(string content, System.Type type) Line 223 + 0x11 bytes C#
TweetSharp.dll!TweetSharp.JsonSerializer.DeserializeJson(string content, System.Type type) Line 41 + 0xe bytes C#
我该如何预防?
答案 0 :(得分:2)
问题在于处理HTTP 500错误“Twitter over capacity”。在这种情况下,Tweetsharp会尝试序列化html页面。