So, a month later, I'm posting again. I've been doing a lot of work on my code, which you guys don't care about. However, the "Blogs I Read" list now displays more information about each blog so you can see when they've been updated. It's also sorted accordingly. This is driven by each blog's RSS feed, which I'm sure many authors don't even know they have. Anyway, my site downloads and caches each blog's RSS feed every so often to keep the list up to date. Pretty standard, right? But getting to this point was an enormous pain.
Let's start at the beginning, when I was all, like, "Man, wouldn't it be cool to organize the blog list so that the recent updates are at the top?" So, I did some research, and determined that ASP.net (the language my site is written in) does not have a native library for dealing with RSS feeds
. Let me allow that to sink in for a second. RSS has been around since, what, 2005 or so? Let's get with the program.
Anyway, I find a decent open source ASP.net library
for this junk online. Only, I'm getting timeout errors when I try to tell my website to download the RSS feeds using the library. So, I put it aside for now and code my own very primitive method to attempt to download the feeds. Still doesn't work. After more horking around, I discover that, actually, two of the RSS feeds will download - the two that are located on the same intranet as mine (we use the same hosting provider). So I call the clowns at 1&1 up telling them my RSS feeds won't download and I send them the links, noting that the ones hosted on 1&1's servers will work. They assure me everything is working properly. Of course.
So, I do some more work on the problem. I look at the source code of the library I'm using, and see that it uses HTTP requests to get the feeds, which is entirely normal. So, I test some junk and determine that all outgoing HTTP requests made by my site are failing. I call up the jokers at 1&1 again and they say the same thing. What a pain.
After digging through 1&1's FAQs (which are surprisingly helpful), I finally find the answer - all outgoing HTTP requests need to go through their proxy server. I can't help feeling like they should have told me that either one of the times
Finally, I can get to work. So, I go back to my code, and behold, the library is quite out of date and cannot properly process Atom RSS feeds (nearly all of the ones in the list). Luckily, I'm not the only one that has noticed, and I'm able to find some easy changes to the source code online and recompile the library. Finally, it works.
So anyway, it was a huge pain, but a great learning experience (which is a major reason I continue to work on the site). My next project will be to generate my own RSS feed. Not that I think anyone will use it, but it's nice to have, at least.