I am trying to work my way through Scott Gu's http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-3-using-networking-to-retrieve-data-and-populate-a-datagrid.aspx tutorial.
The tutorial contacts a service using a WebClient.
Someone called David has posted a question regarding him getting the error "The remote server returned an error: (403) Forbidden.".
The answer to the question is to add this line: Service.Headers.Add("user-agent", "Silverlight Sample App");
However, the Headers have no "Add" method any more: http://msdn.microsoft.com/en-us/library/system.net.webheadercollection_members(VS.95).aspx.
In stead I think you need to use the bold italic line in the source below:
private void SearchBtn_Click(object sender, RoutedEventArgs e)
{
string topic = txtSearchTopic.Text;
string diggUrl = string.Format("http://services.digg.com/stories/topic/{0}", topic);
WebClient diggService = new WebClient();
diggService.DownloadStringCompleted += new DownloadStringCompletedEventHandler(diggService_DownloadStringCompleted);
diggService.Headers[HttpRequestHeader.UserAgent] = "Silverlight Sample App";
diggService.DownloadStringAsync(new Uri(diggUrl));
}
But this doesn't work either, because UserAgent is a restricted header that cannot be set. Attempting to set it will throw an exception:
http://msdn.microsoft.com/en-us/library/system.net.webheadercollection(VS.95).aspx
So is there any way of making the tutorial work? Am I barking up the wrong tree? If I find out I'll post the answer :)
No comments:
Post a Comment