Здравствуйте, уважаемые коллеги. Очень нужна помощь.
Стоит задача реализовать обмен данными с порталом через HTTPS протокол.
Для этого были реализованы следующие шаги:
1. Через пользователя был выкачан сертификат доверия (без ключа и авторизации не выкачаешь).
Затем его залили в SAP через STRUST и в стандарт и в аноним.
2. В SM59 была создана HTTP-связь с внешним сервером.
Тип соединения = G
Целевой хост = адрес портала без https:// и без преффиксов
Прокси не указан
№ сервиса = 443
SSL = Акт. SSL-сертификат установлен на DEFAULT
HTTP-версия = HTTP 1.0
3. Ну и собственно код:
Code:
cl_http_client=>create_by_destination(
EXPORTING
destination = 'Имя соединения SM59'
IMPORTING
client = lo_http_client
EXCEPTIONS
argument_not_found = 1
destination_not_found = 2
destination_no_authority = 3
plugin_not_active = 4
internal_error = 5
OTHERS = 6 ).
if sy-subrc = 0.
lo_http_client->request->set_method( if_http_request=>co_request_method_post ).
lv_uri = 'https://' + адрес портала + преффикс согласно инструкции.
lo_http_client->append_field_url( EXPORTING name = 'serial' value = '16-ричный колюч пользователя' CHANGING url = lv_uri ).
lo_http_client->request->set_header_field( name = '~request_uri' value = lv_uri ).
lo_http_client->request->set_header_field( name = if_http_header_fields=>content_type value = 'application/json').
lo_http_client->send(
EXPORTING
timeout = 60
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
http_invalid_timeout = 4 ).
lo_http_client->receive(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4 ).
lo_http_client->response->get_status( IMPORTING code = lv_st_code reason = lv_st_text ).
DATA(e_data) = lo_http_client->response->get_cdata( ).
DATA(e_xdata) = lo_http_client->response->get_data( ).
endif.
lo_http_client->close( ).
lv_st_code возвращается равным 404
lv_st_text возвращается равным Connection Refused
Как бы мы не изменяли код возвращается такой код ошибки
И это только первый маленький этап из всего подключения и обмена.
Из-за чего может не работать. Может настроек сервера не хватает.
Код писали согласно инструкции по обмену от портала. Может в нем что-то не верно.