Я пытаюсь использовать w WebClient (также пробовал HttpWebRequest) для вызова API, защищенного с помощью SSL, на веб-сайте, требующем базовой аутентификации, но получаю исключение в обратном вызове DownloadStringAsync.Вот мой код, в данном случае вызывающий Twitter:
private void Button_Click2(object sender, RoutedEventArgs e)
{
WebClient webClient = new WebClient();
webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
NetworkCredential credentials = new NetworkCredential("username", "password");
webClient.Credentials = credentials;
webClient.DownloadStringAsync(new Uri(@"http://twitter.com/statuses/friends_timeline.xml"));
}
void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
System.Diagnostics.Debug.WriteLine("e.Error: " + e.Error);
}
Как я уже говорил, я получаю исключение с текстом ниже
{"Удаленный сервер возвратил ошибку: NotFound."}
Из прочтения различных сообщений может показаться, что WebClient не отправляет учетные данные. Я также попробовал следующее:
string authInfo = "username:password";
authInfo = Convert.ToBase64String(StringToAscii(authInfo));
webClient.Headers["Authorization"] = "Basic " + authInfo;
Но с теми же результатами любые указатели на то, чтоЯ делаю неправильно, я был бы очень признателен, так как я вырываю свой слух из-за этого.
Кстати, я пробовал приведенный выше код с вызовом, который не требует аутентификации и работает нормально, также пробовалкод в проекте WPF и снова он работает, это только в эмуляторе WP7, что он терпит неудачу.
Заранее спасибо, Руперт.