У меня есть java-сервис, который мне нужно использовать (я не могу его изменить) и веб-сервер, который использует дайджест-авторизацию HTTP. Я использую HttpWebRequest для связи с сервером (методом GET). NetworkCredentials, необходимые для аутентификации предоставляются. Но при вызове GetResponse () выдается ошибка 400 (неверный запрос).
Адрес: http://info.server.com/someFolder/servlet.do?cmd=get_info¶m=value
Пример запроса (не полный, только релевантные вещи):
GET /someFolder/servlet.do?cmd=get_info¶m=value HTTP / 1.1
Хост: info.server.com
Ответ: 401 Требуется авторизация
Второй запрос:
GET /someFolder/servlet.do?cmd=get_info¶m=value HTTP / 1.1
Хост: info.server.com
Авторизация: Digest ... uri = "/ someFolder / servlet.do" ... (явно не полный заголовок)
Второй ответ: 400 Неправильный запрос
Я пробовал этот запрос с веб-браузерами (IE, Firefox), и он работает, но кажется, что браузер помещает весь URI запроса в URI-часть заголовка Authorization, в то время как HttpWebRequest форматирует заголовок, как указано выше.
Кто-нибудь знает, как заставить HttpWebRequest поставить весь URI в заголовок авторизации?
Или, может быть, есть другое решение этой проблемы?
Спасибо за помощь!