Текущее время: Чт, июл 24 2025, 01:22

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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