Получить запрошенный URL-адрес из ответа System.Net.WebClient? - PullRequest
1 голос
/ 27 марта 2011

Я использую System.Net.WebClient для получения некоторых данных из URL.

void GetAirportData()
{
  var url = "http://server.example.com/airports.xml?id=OSL";
  var webClient = new WebClient();
  webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
  webClient.OpenReadAsync(new Uri(url, UriKind.Absolute));
}

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
   //How can I see the original URL here, so that I can see which id parameter was passed?
}

Отправляемые мной запросы будут содержать URL с некоторыми параметрами, которые меняются для каждого вызова, и мне нужночтобы узнать, какой параметр я запрашивал при возвращении ответа.

Могу ли я, например, использовать свойство .UserState объекта отправителя?

1 Ответ

6 голосов
/ 27 марта 2011

Ну, если потребуется URL, я бы изменил ваш код на что-то вроде этого:

void GetAirportData()
{
  var url = new Uri("http://server.example.com/airports.xml?id=OSL", UriKind.Absolute);
  var webClient = new WebClient();
  webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
  webClient.OpenReadAsync(url, url);
}

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
   // Gets the original url passed.
   var url = e.UserState as Uri;
}
...