Why am I sometimes downloading garbage data from BBC Weather RSS feeds?

邮差的信 提交于 2019-12-24 15:14:21

问题


I'm getting weird corrupted looking text / data on random occasions when downloading from the BBC's RSS weather feed. Strangely, this happens if I directly load from the web rather than download as well. Could it be a memory problem? It is so random, but 70% of the time, one of the locations will be downloaded wrong.

Downloading Subs:

  Public Sub DownloadWeather()

    If IsConnectionAvailable() = True Then

        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2657832/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Aberdeen.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2656752/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Aviemore.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2653609/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Barra.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2650752/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Dundee.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2650798/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Dumfries.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2651245/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Dingwall.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2650225/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Edinburgh.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2648579/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Glasgow.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2636239/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Harris.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2646088/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Inverness.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2655051/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Islay.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2636790/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Lewis.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2635754/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Mull.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2641108/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Oban.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2645198/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Orkney.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2640358/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Perth.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2644605/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Shetland.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2640006/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Skye.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2635881/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Thurso.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2643811/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Uist.rss")
        Module_XML_Download.DownloadXML("http://open.live.bbc.co.uk/weather/feeds/en/2635199/3dayforecast.rss", My.Settings.DataMainFolder & "\" & My.Settings.DataWeatherXMLFolder & "\Ullapool.rss")

    End If

End Sub


  Public Sub DownloadXML(ByVal URL As String, ByVal SaveAs As String)
    Try
        Dim WebClient As New System.Net.WebClient()

        WebClient.DownloadFile(URL, SaveAs)
        If My.Settings.LogXMLDownloaded = True Then
            Module_Log.WriteLog(Now.ToString & "   XML Downloaded: " & SaveAs)
        End If

    Catch _Exception As Exception

        ' Error
        ' MsgBox("Exception caught in process: {0}", _Exception.ToString())
        If My.Settings.LogXMLDownloadError = True Then
            Module_Log.WriteLog(Now.ToString & "   XML DL Error: " & _Exception.Message)
        End If
    End Try

End Sub

The weird garbage data that appears, randomly on some of the location.rss files:

‹       Í–áNÛ:Ç¿OÚ;EºÒ¦µ±“ÚEiÑ…‰Mº Mƒ±ÈMÜÆ"±#Û¡ë[íöd÷8MK      i_šÄ>>ÿÿ9þ9Mzð³*ášk#”œxO=à2S¹‹‰÷ýüx8ö¦oߤÚÀPifU5ñ

kë„åré/#_é )É¿8éu®pÕ­ÐõP¾¾õn´CÔF%€4+˜”¼lðÑ &¥WPh>ßæS5—~)®¹?›e~¦üæŠ,9³×dÎyn—$ÜßÇ£$ÊÙj®4Ϙ±~««y9ñ/çØUÍ'«ëRdÌ¢‚°ÈÆ„¶äÓÃÃ#ø±Ö€!w 3|.™Y¨å ¾KayÿasU¥d½´Ëãê˜ö:²ë½³œ’6´[–s“iQ;sÓhˆÅÀ¼/ÞiÃ\« z& dV6n7a¹²¼ª¹f¶Ñ˜Ìa)ðGHÌSµÕ§¤¯¶ñÍä¢a>å8¿}è&3U¯´Xvz´¹KàÝÑ{8Ô SàU±Ü¹uFŽ”®•n¥8‡{Ûa¹®ay.\ +/8¦°ˆ««¸Âò!ç–‰Ò¤äÆ@ç¨nfŸ˜åÓc-P8ÅŽ…4ˆ ’”!| ¥)ÙvëDuSÖËí:fjt¹Ùvc±öÌ•*îl=õ#?¤i]"2%ñWæâZä ¶ ]®Ç¸¼Tò²t_Î$ý…˜§Ä‰lŸG.\ŠÜÓa’õÝv¢àm‹ÝLwÛuôÛ–bª»-Ä}@h8qËà¸õ§ì§¨š ÎoxLp~ÿ:‚wqøû×ñ{8r7d¿Ø‹\ÄNŸŸ\õú™Ð»µ÷ÉÜßàqƒøáŽ×'и¬ œ©ÆÈ“AÂËU7VãËe¯êb ˆ™(…ÅŽ]p½‚ÏJåøª¹1k”Õl _šJämØhü2xß„¹J ÂU–ÍZñÄñyÖH-®¥qÄpxvÞŽŽG5ÄC¹¡ûŽþóO®\4ß-æ+fv‚žxsVî=i‹†tèT†4ô|£åSJQ.qz.}O¬ýKIj%¤Æ±?Þ±ÒážÆ£ý(%·æ·èÞÐz/¹gnSŸÈ.]³Afw´F#~vƒ?g·ïïvûwÙ}€ÚøÙÔî÷© ¡6Ú¥6þ© þjùbÌîµÑÇ6|fûÿð}í{´ãÛÐŽ£>´Á#лЎž-mA ^ Úð´ÖkA‹lÛOüÔ}lãõí›ÿÖ¨Œ


回答1:


I've just seen the same exact thing for the first time when requesting from BBC Weather RSS feeds from the code in my website.

I just added the website which was using the BBC feeds to CloudFlare but I can't see how that might be related.

I added a random query string to the end of the BBC RSS feed URL so my URL looked like this:

http://open.live.bbc.co.uk/weather/feeds/en/2634135/3dayforecast.rss?123

And the problem immediately was resolved.

Note that if I manually requested the feed directly in my own browser, it was working fine.



来源:https://stackoverflow.com/questions/16480631/why-am-i-sometimes-downloading-garbage-data-from-bbc-weather-rss-feeds

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!