Текущее время: Вс, июл 27 2025, 12:46

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Пн, ноя 26 2012, 08:23 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
Добрый день.

Пытаюсь пройти аутентификацию с помощью HTTP запроса.
В конце получаю ошибку 400.
Понимаю, что значит что-то не так заполнил.
Как мне просмотреть сформированное мною сообщение перед отправкой?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Пн, ноя 26 2012, 10:51 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Ошибка 400 иногда возникает когда не удается даже подключиться к внешнему серверу:
Если сделаете
Code:
  call method o_http_client->receive
    exceptions
      http_communication_failure = 1
      http_invalid_state         = 2
      http_processing_failed     = 3
      others                     = 4.
  if sy-subrc <> 0.
    call method o_http_client->get_last_error
      importing
        code    = rc
        message = err_msg
        .

то получите код "400", сообщение "ICM_HTTP_CONNECTION_FAILED".

Полностью сформированное сообщение врятли получится посмотреть. Как вариант - в icm-мониторе выставлять трассировку на максимум и смотреть, там иногда куски сформированного сообщения всплывают. Железный вариант - на уровне сети посмотреть или отправить трафик к себе на компьютер и уже на месте исследовать что приходит.


Последний раз редактировалось AFH Пн, ноя 26 2012, 11:29, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Пн, ноя 26 2012, 11:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Когда была необходимость, я сперва пытался отладиться на своей машине. Для этого вручную формировал запрос(или подсматривал запрос) в программе fiddler. После этого старался чтобы мой запрос в абап-коде соответствовал тому, что получилось в результате исследований

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Пн, ноя 26 2012, 12:54 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
Больше никаких способов нет?

А сформированные данные в запросе никак не посмотреть!?

Хотелось бы каким-то образом получить, что-то типа такого.

POST /post/CreditCardAPIReceiver HTTPS/1.0
Content-type: application/x-www-form-urlencoded; charset=”UTF-8”
Content-length: 315
Host: api.somewhere.com:80

order.type=capture&customer.username=COMPANYA&customer.pas
sword=insurance&customer.merchant=companya&card.PAN=424242
4242424242&card.CVN=564&card.expiryYear=10&card.expiryMont
h=06&order.amount=3400&customer.orderNumber=AB1322refund&c
ard.currency=AUD&order.ECI=IVR&customer.captureOrderNumber
=AB1322&order.priority=1&message.end=null


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Пн, ноя 26 2012, 12:59 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
про фиддлер или другой какой посредник, самый лучший в итоге совет (если ICMной трассировки не хватает). Но могут быть порты недоступны с абапа, на той машине где фиддлер.
Думаю что всю сессию обрабатывает не ABAP-код а какой-нибудь сишный вызов, можно попытаться отладчиком локализовать место (не пробовал).

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Пн, ноя 26 2012, 13:04 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
Еще также интересует каким образом прикрепить сертификат x.509 к сообщению.
Может кто знает?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Пн, ноя 26 2012, 13:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 chumpa: я ж говорю, это только чтобы посмотреть, что на формируемый запрос есть нормальный отклик. При работе абап-программы запрос пойдет же с апп-сервера, туда фидлер воткнуть обычно не дают :-)

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Пн, ноя 26 2012, 13:18 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
Кодер, ага -- согласен. На продуктиве обычно только базисников уламывать по организации где-то наблюдательного пункта, ну или дырдочку в межсетевых экранах искать.

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Вт, ноя 27 2012, 05:22 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Цитата:
Больше никаких способов нет?

Скорее всего способа действительно нет, т.к. итоговый http-запрос формируется в сишном модуле. Иначе можно было бы программно вытянуть логины/пароли которые можно прописывать в SM59 для HTTP-соединений, и которые в итоге попадают в заголовок Authorization (или как-то так).

Цитата:
Еще также интересует каким образом прикрепить сертификат x.509 к сообщению.
Может кто знает?

А что вы имеете ввиду под термином прикрепить? Можно, например, в теле POST запроса передать как и любые бинарные данные. Или вас SSL интересует?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Вт, ноя 27 2012, 05:24 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Кстати, я у вас в ответе заметил POST /post/CreditCardAPIReceiver HTTPS/1.0

Чтобы заработал HTTPS нужно базисника, чтобы он все настроил, там насколько я знаю довольно нетривиальные настройки надо делать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Вт, ноя 27 2012, 06:09 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
AFH написал(а):
Цитата:
Больше никаких способов нет?

Скорее всего способа действительно нет, т.к. итоговый http-запрос формируется в сишном модуле. Иначе можно было бы программно вытянуть логины/пароли которые можно прописывать в SM59 для HTTP-соединений, и которые в итоге попадают в заголовок Authorization (или как-то так).


Возможно ли себе этот запрос отправить?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Вт, ноя 27 2012, 06:18 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
Цитата:
Еще также интересует каким образом прикрепить сертификат x.509 к сообщению.
Может кто знает?

А что вы имеете ввиду под термином прикрепить? Можно, например, в теле POST запроса передать как и любые бинарные данные. Или вас SSL интересует?[/quote]

Как положить в тело запроса сертификат x.509.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Вт, ноя 27 2012, 06:19 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
AFH написал(а):
Ошибка 400 иногда возникает когда не удается даже подключиться к внешнему серверу:
Если сделаете
Code:
  call method o_http_client->receive
    exceptions
      http_communication_failure = 1
      http_invalid_state         = 2
      http_processing_failed     = 3
      others                     = 4.
  if sy-subrc <> 0.
    call method o_http_client->get_last_error
      importing
        code    = rc
        message = err_msg
        .

то получите код "400", сообщение "ICM_HTTP_CONNECTION_FAILED".

Полностью сформированное сообщение врятли получится посмотреть. Как вариант - в icm-мониторе выставлять трассировку на максимум и смотреть, там иногда куски сформированного сообщения всплывают. Железный вариант - на уровне сети посмотреть или отправить трафик к себе на компьютер и уже на месте исследовать что приходит.


Я получаю именно код 400. А как проверить подключение к серверу?

AFH написал(а):
Кстати, я у вас в ответе заметил POST /post/CreditCardAPIReceiver HTTPS/1.0

Чтобы заработал HTTPS нужно базисника, чтобы он все настроил, там насколько я знаю довольно нетривиальные настройки надо делать.


В моем случае мне нужно HTTP/1.1


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Вт, ноя 27 2012, 07:40 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Цитата:
Я получаю именно код 400. А как проверить подключение к серверу?

Ну я привел код, в переменной err_msg будет ICM_HTTP_CONNECTION_FAILED как раз в том случае если нет соеднения.

Цитата:
Как положить в тело запроса сертификат x.509.

Как-то так:
Code:
    call method o_http_client->request->set_data
      exporting
        data = сертификат

Правда не знаю как это будет сочетаться с тем, что вы там уже параметры передаете. Надо наверное как-то с IF_HTTP_ENTITY~ADD_MULTIPART попробовать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как просмотреть отправляемое сообщение с помощью HTTP запроса?
СообщениеДобавлено: Вт, ноя 27 2012, 12:33 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
Возник еще интересный вопрос.

Мне в заголовке нужно получить вот такое.
POST https://any.server.ru/Authenticate HTTP/1.1

Но если сервер использует https то наверное тогда необходимо, чтобы строчка была такой
POST https://any.server.ru/Authenticate HTTPS/1.1

Я правильно понимаю!?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB