WinInet: как узнать реальный URI открытого соединения?
От: Аноним  
Дата: 25.01.11 15:09
Оценка:
Вот такая проблема. Имеется, к примеру, URL в такой форме — http://www.server.com/subdir
Его "правильная" форма должна быть http://www.server.com/subdir/, потому как в реальности, это директория на сервере с каким-то дефолтным файлом внутри (z.B. index.html). К сожалению WinInet функции типа HttpOpenRequest одинаково выполняют соединение с обоими вариантами написания УРЛ.

Знает ли кто способ, как узнать с помощью WinInet реальный локейшн такого соединения? Как делают это браузеры? Например, если в браузере напечатать http://www.server.com/subdir и нажать ентер, то браузер перейдет на http://www.server.com/subdir/. В то же время, в случае если subdir — имя файла без расширения, то браузер корректно отобразит его как файл http://www.server.com/subdir
wininet
Re: WinInet: как узнать реальный URI открытого соединения?
От: De-Bugger  
Дата: 26.01.11 05:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Знает ли кто способ, как узнать с помощью WinInet реальный локейшн такого соединения?



InternetQueryOption(hRequest, INTERNET_OPTION_URL ...
Re: WinInet: как узнать реальный URI открытого соединения?
От: Aniskin  
Дата: 26.01.11 06:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Например, если в браузере напечатать http://www.server.com/subdir и нажать ентер, то браузер перейдет на http://www.server.com/subdir/. В то же время, в случае если subdir — имя файла без расширения, то браузер корректно отобразит его как файл http://www.server.com/subdir


Предполагаю, что дело не в браузере, а в сервере. Умный сервер для запроса http://www.server.com/subdir в ситуации, когда subdir является директорией, возвращает 301 на http://www.server.com/subdir/

А>К сожалению WinInet функции типа HttpOpenRequest одинаково выполняют соединение с обоими вариантами написания УРЛ.


Предпологаю, что ты вызываешь HttpOpenRequest без флага INTERNET_FLAG_NO_AUTO_REDIRECT, и 301 обрабатывается незаметно для тебя.
Re[2]: WinInet: как узнать реальный URI открытого соединения
От: Аноним  
Дата: 26.01.11 10:14
Оценка:
Здравствуйте, Aniskin, Вы писали:

A>Здравствуйте, Аноним, Вы писали:


А>>Например, если в браузере напечатать http://www.server.com/subdir и нажать ентер, то браузер перейдет на http://www.server.com/subdir/. В то же время, в случае если subdir — имя файла без расширения, то браузер корректно отобразит его как файл http://www.server.com/subdir


A>Предполагаю, что дело не в браузере, а в сервере. Умный сервер для запроса http://www.server.com/subdir в ситуации, когда subdir является директорией, возвращает 301 на http://www.server.com/subdir/


А>>К сожалению WinInet функции типа HttpOpenRequest одинаково выполняют соединение с обоими вариантами написания УРЛ.


A>Предпологаю, что ты вызываешь HttpOpenRequest без флага INTERNET_FLAG_NO_AUTO_REDIRECT, и 301 обрабатывается незаметно для тебя.


Точно, спасибо большое! Я почему-то думал, что даже без INTERNET_FLAG_NO_AUTO_REDIRECT полный хедер сервера должен содержать новый локейшн.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.