Из строки, которую я проанализировал из Рисунка дня Бинга , я получил информацию о загружаемой картинке, скажем, сегодня это /az/hprichbg/rb/PearlHarborWindows_EN-US8565186567
, тогда у нас будет полный URL-адрес изображенияпоходить на http://www.bing.com/az/hprichbg/rb/PearlHarborWindows_EN-US8565186567_1366x768.jpg
Обычно Bing имеет изображение с более высоким разрешением, поэтому я также скачаю изображение 1920x1200.Это легко с измененным URL-адресом, чтобы он был похож на http://www.bing.com/az/hprichbg/rb/PearlHarborWindows_EN-US8565186567_1920x1200.jpg
, затем задайте задачу для WebClient
, например client1.DownloadFile(url, fileName)
Проблема здесь в том, что в некоторые дни разрешение 1920x1200 недоступно, иURL загрузки этого разрешения (1920x1200) будет перенаправлен на URL изображения /sa/simg/hpb/NorthMale_EN-US8782628354_1920x1200.jpg
- по умолчанию (вы можете проверить его).
Поэтому моя попытка былафункция, чтобы получить возвращенный / перенаправленный URL-адрес из входного URL-адреса:
Public Function GetWebPageURL(ByVal url As String) As String
Dim Request As WebRequest = WebRequest.Create(url)
Request.Credentials = CredentialCache.DefaultCredentials
Return Request.RequestUri.ToString
End Function
и сравнить с входным URL-адресом, чтобы увидеть, что они отличаются, но результат был не таким, как ожидалось.
Может ли кто-нибудь сообщить мне способ проверки этого перенаправленного URL-адреса, например, обратный URL-адрес после того, как мы нажмем Enter и дождемся загрузки сайта.
Пожалуйста, дайте мне идею, чтобы преодолеть это препятствие.Спасибо!
Примечания: Некоторые проблемы, связанные с правами доступа на разных ПК, не позволяют использовать HttpWebRequest
, поэтому я предпочитаю решение, не использующее HttpWebRequest
(WebClient
или другие лучше).
С помощью @IvanValadares @ AlenGenzić и предложением Proxy
для HttpWebRequest
от @Jimi, я пришел к справедливому решению,как приведенный ниже код:
url1 = "http://www.bing.com/az/hprichbg/rb/PearlHarborWindows_EN-US8565186567_1920x1200.jpg"
Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(url1), HttpWebRequest)
myHttpWebRequest.MaximumAutomaticRedirections = 1
myHttpWebRequest.AllowAutoRedirect = True
Dim defaultProxy As IWebProxy = WebRequest.DefaultWebProxy
If (defaultProxy IsNot Nothing) Then
defaultProxy.Credentials = CredentialCache.DefaultCredentials
myHttpWebRequest.Proxy = defaultProxy
End If
Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse, HttpWebResponse)
url2 = myHttpWebResponse.ResponseUri.ToString
Label1.Text = url1
Label2.Text = url2