Skip to content

Commit b93a251

Browse files
authored
Fix Galnet 403 errors
Replace XmlReader with HttpClient for feed retrieval to include the missing User-Agent header which causes the website to reject the request.
1 parent bdfed03 commit b93a251

1 file changed

Lines changed: 15 additions & 7 deletions

File tree

GalnetMonitor/GalnetMonitor.cs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
using System.Threading.Tasks;
2020
using System.Windows.Controls;
2121
using System.Xml;
22+
using System.Net.Http;
2223
using Utilities;
2324

2425
namespace EddiGalnetMonitor
@@ -223,16 +224,23 @@ private static List<FeedItem> GetFeedItems ( string url, bool fromAltUrl = false
223224
var items = new List<FeedItem>();
224225
try
225226
{
226-
using ( var reader = XmlReader.Create( url ) )
227+
using ( var httpClient = new HttpClient() )
227228
{
228-
var feed = SyndicationFeed.Load( reader );
229-
var normalizer = new GalnetFeedItemNormalizer( fromAltUrl );
230-
foreach ( var syndicationItem in feed.Items )
229+
// Add a User-Agent header (required by many servers)
230+
httpClient.DefaultRequestHeaders.Add( "User-Agent", "EDDI/5.0 (Compatible)" );
231+
232+
using ( var stream = httpClient.GetStreamAsync( url ).GetAwaiter().GetResult() )
233+
using ( var reader = XmlReader.Create( stream ) )
231234
{
232-
var feedItem = normalizer.Normalize( feed, syndicationItem );
233-
if ( feedItem != null )
235+
var feed = SyndicationFeed.Load( reader );
236+
var normalizer = new GalnetFeedItemNormalizer( fromAltUrl );
237+
foreach ( var syndicationItem in feed.Items )
234238
{
235-
items.Add( feedItem );
239+
var feedItem = normalizer.Normalize( feed, syndicationItem );
240+
if ( feedItem != null )
241+
{
242+
items.Add( feedItem );
243+
}
236244
}
237245
}
238246
}

0 commit comments

Comments
 (0)