используйте HttpWebRequest, чтобы получить перенаправленный URL вместо ожидания загрузки всей страницы - PullRequest
1 голос
/ 12 декабря 2011

У меня есть страница, которая перенаправляет на видео (.3gp).Проблема (из того, что я могу сказать) состоит в том, что после начала запроса с исходной страницы, я получаю очень поздний ответ.Я полагаю, это потому, что веб-запрос ожидает загрузки данных.Вот мой код:

       System.Uri targetUri = new System.Uri(TextBlockTargetUri.Text);
       HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(targetUri);
        request.AllowReadStreamBuffering = true;
        request.AllowAutoRedirect = true;
        request.BeginGetResponse(new AsyncCallback(ReadWebRequestCallback), request);

 private void ReadWebRequestCallback(IAsyncResult callbackResult)
        {
            HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.EndGetResponse(callbackResult);


            using (StreamReader httpwebStreamReader = new StreamReader(myResponse.GetResponseStream()))
            {
                string stuff2 = myResponse.ResponseUri.AbsoluteUri;
                Dispatcher.BeginInvoke(() => TextBlockResults.Text =  stuff2);
            }
            myResponse.Close();
        }

Мне нужен только URL, потому что у плеера, который я использую, есть метод потоковой передачи, поэтому я не должен ждать загрузки всего видео.Как я могу получить только URL перенаправления и не ждать видео?

1 Ответ

2 голосов
/ 12 декабря 2011

Вы можете использовать метод HEAD http, просто сделайте:

 request.Method = "HEAD";

Этот метод просит сервер возвращать только заголовки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...