SAP访问外围系统(http/https)
1、308 Permanent Redirect(错误)没办理,如果有高手办理请留言非常感谢交流。外围系统要改URL访问所在,Postman访问时通的没有任何问题,通过ABAP步伐调用报错308 Permanent Redirect,利用SMICM没有查到任何错误,而且找basis检察防火墙都开着没问题。颠末沟通对方提供URL所在时一级访问所在(Postman可以自动转接,abap步伐不可以),终极外围系统提供一个二级访问URL所在办理了。
2、https访问遇到问题以及办理思路
abap步伐访问提示
https://i-blog.csdnimg.cn/direct/cf3202cc6f3e49c1a1a180e8d1c9d9cd.png
说明以前有步伐用到这个二级URL服务的证书已经导入系统,这个时间我们可以通过URL所在直接欣赏器访问一下 提示:no access key, access reject 说明需要加密KEY 访问这时间给第三方要就可以(KEY值 有的外围系统设置有效期,测试机生产机不一样这个一定要和对方确定好,不然传到生产机不能利用),代码header加一下就OK了,name稳定 value是变化的
r_client->request->set_header_field( name = 'x-gw-accesskey' value = ‘4f64b33f-e2da-4cd2-9ff4-804a’).
3、http访问错误查找日记(SMICM利用方法)
SMICM主要功能:
a. 监控服务和端口:
SMICM 允许管理员监视系统上的各种服务和端口,确保它们正常运行。这对于确保与外部系统的通讯正常举行非常告急。
b. 处理和监控 HTTP 请求:
• 对于运行 SAP Web应用步伐服务器的系统,SMICM 提供了监视和处理 HTTP 请求的功能。这有助于检测和办理与 Web 服务相关的问题。
c. 管理网络连接:
• 管理员可以利用 SMICM 检察系统上的当前网络连接,包括连接到 SAP 系统的用户和外部系统之间的连接。这有助于监视系统的负载和性能。
d. SSL/TLS 证书管理:
• 对于启用了安全套接字层(SSL)或传输层安全性(TLS)的系统,SMICM 提供了证书管理功能。这包括检察和更新 SSL/TLS 证书,确保通讯的安全性。
e. http 缓存管理:
• 对于运行 Web 应用步伐的系统,SMICM 允许管理员管理 HTTP 缓存。这有助于优化 Web 应用步伐的性能,并确保用户得到最新的数据。
f. 系统性能监控:
• SMICM 提供了有关系统性能的信息,包括网络耽误和相应时间。这对于识别潜在性能问题并举行相应的调整非常有资助。
CL_HTTP_CLIENT访问外围系统报错一样平常利用
CALL METHOD lo_http_client->get_last_error
IMPORTING
code = lv_code
message = err_message. 4、http源代码
DATA: BEGIN OF ls_json,
emp_list TYPE TABLE OF yshr_employee_info, "员工信息
app TYPE string, "传固定值SAP
operator_Id TYPE string, "item信息
END OF ls_json.
DATA: BEGIN OF ls_respond,
code TYPE string,
msgTYPE string,
END OF ls_respond.
***http 接口
DATA: lv_json TYPE string.
DATA:lv_urlpassword TYPE string.
DATA: lv_len TYPE i.
DATA: lv_url TYPE string. "http 服务接口地址
DATA: lr_client TYPE REF TO if_http_client. "HTTP请求
DATAlo_root TYPE REF TO cx_root. "异常
DATA: lv_text TYPE string. "异常文本
***赋值
MOVE-CORRESPONDING it_empinfo TO ls_json-emp_list.
ls_json-app = 'sap'."要小写
ls_json-operator_Id = iv_operator.
CLEAR lv_json.
CALL METHOD /ui2/cl_json=>serialize
EXPORTING
data = ls_json
pretty_name = /ui2/cl_json=>pretty_mode-camel_case
RECEIVING
r_json = lv_json.
***获取数据
TRY.
*&_创建http连接
cl_http_client=>create_by_url(
EXPORTING
url = lv_url
IMPORTING
client = lr_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active= 2
internal_error = 3
OTHERS = 4
).
IF lr_client IS BOUND.
* CALL METHOD lr_client->request->set_method( 'POST' ).
* lr_client->request->set_content_type( content_type = 'application/json; charset=UTF-8' ).
* lr_client->request->set_header_field( name = 'Content-Type' value = 'application/json ; charset=UTF-8' ).
* 设定传输请求内容格式以及编码格式
lr_client->request->set_content_type( content_type = 'application/json; charset=UTF-8' ).
* 设置POST请求
lr_client->request->set_method( if_http_request=>co_request_method_post ).
* 设置传参方式
lr_client->request->set_header_field( name = 'Content-Type' value = 'application/json' ).
lr_client->request->set_header_field( name = 'x-gw-accesskey' value = lv_urlpassword ).
* 设置请求协议:HTTPS
lr_client->request->set_header_field( name = '~request_protocol' value = 'HTTPS/1.1' ).
*& 记录长度
lv_len = strlen( lv_json ).
CALL METHOD lr_client->request->set_cdata
EXPORTING
data = lv_json
offset = 0
length = lv_len.
lr_client->send(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2 ).
lr_client->receive(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3 ).
DATA(lv_result) = lr_client->response->get_cdata( ).
* 解析调用结果
IF lv_result IS NOT INITIAL.
CLEAR ls_respond.
CALL METHOD /ui2/cl_json=>deserialize
EXPORTING
json = lv_result
CHANGING
data = ls_respond.
IF ls_respond-code = '0'.
ev_mtype = 'S'.
ev_msg = ls_respond-msg.
ELSE.
ev_mtype = 'F'.
ev_msg = ls_respond-msg.
ENDIF.
ELSE.
ev_mtype = 'F'.
ev_msg = '请求接口失败'.
ENDIF.
CALL METHOD lr_client->close.
ELSE.
ev_mtype = 'F'.
ev_msg = '请求接口失败'.
ENDIF.
CATCH cx_root INTO lo_root.
lv_text =lo_root->get_text( ).
ev_mtype = 'F'.
ev_msg = lv_text.
ENDTRY.
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]