1

我遇到了一个间歇性的问题,一个 sub 去阅读 twitter rss 提要。

95% 的时间,它表现良好且没有问题。剩下的 5% 它给了我一个 400 Bad Request 错误(即使 Twitter 上的 rss 提要很好,这表明问题出在我的最后,而不是 Twitter。)

代码:

Sub RetrieveStories()
   'Create a new xmldocument and load the xml into it
   Dim rssDoc As New XmlDocument
   rssDoc.Load("http://twitter.com/statuses/user_timeline/athersgeo.rss")

   'Select each item and put it into our array
   Dim nodes As XmlNodeList = rssDoc.SelectNodes("rss/channel/item")
   Dim i as integer = 1
   divMRSS.InnerHtml = ""
   Dim TweetText as string
   Dim TweetURL as string
   Dim UNameLen as integer = 15
   For Each node As XmlNode In nodes
      'Using xpath we can acess all the data we need in each node
      TweetURL = node.SelectSingleNode("link").InnerText
      TweetText = Mid(node.SelectSingleNode("title").InnerText,UNameLen)
      TweetText = Linkify(TweetText)
      TweetText = Atify(TweetText)
      TweetText = Hashify(TweetText)
      TweetText = "<a href=""http://twitter.com/athersgeo"" target=""_blank"">@athersgeo</a>: " & TweetText
      divMRSS.InnerHtml += "" & TweetText & "<BR><a href=""" & TweetURL & """ target=""_blank"">"  & RelativeTime(node.SelectSingleNode("pubDate").InnerText) & "</a><BR><HR>"
      i = i + 1

      If i = 5 then
        Exit For
      End if
   Next
End Sub

是否有一些我没有关闭/处理的东西正在吸收连接?还是我刚刚编写了一些非常愚蠢的代码?(这不会是第一次!)

4

1 回答 1

1

400 Bad Request 与 HTTP 相关联。从您的代码看来,唯一的 HTTP 请求是加载 xmlDocument rssDoc.Load("http://twitter.com/statuses/user_timeline/athersgeo.rss")。但是你提到了——Twitter 上的 rss 提要很好——你怎么能确保这一点?
正如本博客中所建议的那样,您可以使用 Fiddler 来探索您的请求发送到 twitter - http://blogs.msdn.com/b/hakane/archive/2009/06/30/investigating-http-400-bad-request-错误-in-web-access.aspx

于 2012-08-27T09:00:01.430 回答