Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
132 / 129 / 31
Регистрация: 12.12.2011
Сообщений: 456
1

Как добавить http авторизацию (http authorization header) при работе с web-сервисом?

02.06.2016, 14:52. Просмотров 3361. Ответов 3
Метки нет (Все метки)


Добрый день!
Проблема такая. Есть веб-сервис который при подключения требует авторизацию. Скачал wsdl, создал pas. Но для авторизации логин с паролем должны быть в http заголовке SOAP сообщения. Вопрос: как их туда засунуть? Работаю через THTTPRIO, а результаты просматриваю в Fiddler. Сначала пробовал задать через THTTPRIO.HTTPWebNode.UserName и THTTPRIO.HTTPWebNode.Password. При этом ошибка 401, а через Fiddler в разделе авторизации "No Authorization Header is present." Порывшись в интернете решил (как советуют) переопределить событие HTTPWebNode.OnBeforePost:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.BeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer);
var UserName, Password: String;
begin  
      UserName:=edUserName.Text;
      Password:=edUserPassword.Text;
 
   if not InternetSetOption(Data, INTERNET_OPTION_USERNAME, PChar(UserName), Length(UserName)) then
      Raise Exception(SysErrorMessage(GetLastError));
 
   if not InternetSetOption(Data, INTERNET_OPTION_PASSWORD, PChar(Password), Length (Password)) then
      Raise Exception(SysErrorMessage(GetLastError));
end;
Но проблема не ушла. Что я делаю не так и как запихать логин с паролем в заголовок http? Это и это не помогло...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2016, 14:52
Ответы с готовыми решениями:

'The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
При вызове команды Response.Redirect 'ert.asp' браузер выводит след. информацию: 'The HTTP...

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content
И так: 1. Один из наших админов сменил 2000 на 2003 (asp) 2. Все работает, НО на одной из задач...

Не работает Response.Redirect !: The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing
точнее все работает на тестовом сервере (Вин2000), при переносе на рабочий страница с редиректом...

Ошибка. Cookies + IIS 4.0: The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page
Вот это вызывает на странице ошибку <% Response.Cookies('member')('name') =...

3
31 / 30 / 16
Регистрация: 08.07.2015
Сообщений: 137
06.06.2016, 05:35 2
Не лучше ли использовать сокеты или их оболочку?
0
132 / 129 / 31
Регистрация: 12.12.2011
Сообщений: 456
06.06.2016, 14:21  [ТС] 3
Develop_WS, а можно подробнее, примерчик какой-нибудь простенький?
0
132 / 129 / 31
Регистрация: 12.12.2011
Сообщений: 456
28.01.2020, 22:17  [ТС] 4
Говнокод...
0
Вложения
Тип файла: zip Example.zip (4.6 Кб, 12 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2020, 22:17

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

SecurityException при работе с Web-сервисом
У меня есть проект Class Library, который ссылается на веб сервис. Также есть проект winforms,...

Basic Authorization HTTP и MediaPlayer
есть mp3 файл и лежит он на сервере, а так же на сервере apache простая авторизация нужно...

Как отключить http-авторизацию на роутере?
Доброго времени суток. В локальной сети есть домен, назовем его sub.domain.ru, роутер Zyxel...

Как использовать протокол HTTP.WEB в WEB-приложении
Здравствуйте! Подскажите пожалуйста как использовать протокол HTTP.WEB в WEB-приложении . У меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.