在ABAP中调用RESTful Web服务

2020-09-08 13:13发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的 我现在正在编写一个AB...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

我现在正在编写一个ABAP程序来调用RESTful Web服务。 下面是我的编码。

" lv_url ='https://api-xxxxxxx.duosecurity.com/auth/v2/auth?device=auto&factor=auto&username=xxxuser'。

 调用方法cl_http_client => create_by_url
    出口
       网址= lv_url
    输入
       客户端= lo_http_client
    例外情况
       arguments_not_found = 1
       plugin_not_active = 2
       internal_error = 3
       其他= 4。

   调用方法lo_http_client-> request-> set_method
     出口
       方法=" POST"。
   调用方法lo_http_client-> request-> set_version
     出口
       版本= if_http_request => co_protocol_version_1_0。

 lv_encode_str ='基本RElRMxxxxxxxxjRUVyyyyyyyyzz34563456xxxxxxxx5M889556447 =='。
   lo_http_client-> request-> set_header_field(
     名称="授权"
     值= lv_encode_str
     )。
   lo_http_client-> request-> set_header_field(
       名称="内容类型"
       值='应用程序/x-www-form-urlencoded'
       )。
   v_line1_str = v_line1。
   lo_http_client-> request-> set_header_field(
       名称="日期"
       值= ls_date
       )。
   lo_http_client->发送(
     例外情况
       http_communication_failure = 1
       http_invalid_state = 2)。

   lo_http_client-> receive(
     例外情况
       http_communication_failure = 1
       http_invalid_state = 2
       http_processing_failed = 3)。
   如果sy-subrc eq 0。

   万一。
   清除lv_xml_result_str。
   lv_xml_result_str = lo_http_client-> response-> get_cdata()。
   调用方法lo_http_client-> close。
 

返回的响应是" 500 SSL对等证书不受信任"。

与api-xxxxxxxx.duosecurity.com进行的SSL握手:443失败:SSSLERR_PEER_CERT_UNTRUSTED(-102)


对等方的X.509证书(链)不受信任
 SapSSLSessionStartNB()== SSSLERR_PEER_CERT_UNTRUSTED
   SSL:SSL_read()失败(536872221/0x2000051d)
   =>"无法验证对等证书。对等不受信任。"
   SSL:SSL_get_state()== 0x2131" TLS读取服务器证书B"
   SSL NI-hdl 136:本地= xxx.xxx.xxx.xxx:xxxxx对等体= 52.32.63.136:443
   cli SSL会话PSE" C:\ usr \ sap \ TST \ D00 \ sec \ SAPSSLC.pse"
   目标主机名=" api-xxxxxxxx.duosecurity.com"
 >> ---- SecuSSL ErrStack:----
 0x2000051d |  SAPCRYPTOLIB |  SSL_read
 SSL API错误
 验证对等证书失败。 同行不信任。
 0xa0600203 |  SSL |  ssl3_read_bytes
 同行不信任
 0xa0600203 |  SSL |  ssl3_connect
 同行不信任
 0xa0600203 |  SSL |  ssl3_get_server_certificate
 同行不信任
 0xa0600203 |  SSL |  ssl3_decode_server_certificate
 同行不信任
 0xa0600203 |  SSL |  ssl_verify_peer_certificates
 同行不信任
 0xa0600203 |  SSL |  ssl_cert_checker_verify_certificates
 同行不信任
 0xa0600203 |  SSL |  ssl_cert_checker_verify_certificates
 同行不信任
 证书:
  证书:
   主题:CN = *。duosecurity.com,O =" Duo Security,Inc。",L =安娜堡,SP =密歇根州,C =美国
   发行者:CN = DigiCert SHA2高保证服务器CA,OU = www.digicert.com,O = DigiCert Inc,C = US
   序列号:03:E6:36:8F:B4:D8:7C:53:82:ED:EB:7D:69:59:81:99
  验证结果:
   状态:不成功
   SignerStatus:不成功
   SignerVerificationResult:
    状态:不成功
    有效期:成功
    基本限制:成功
    关键用法:成功
    ObjectStatus:不成功
    签名者证书:
     证书:
      主题:CN = DigiCert SHA2高保证服务器CA,OU = www.digicert.com,O = DigiCert Inc,C = US
      发行者:CN = DigiCert高保证EV根CA,OU = www.digicert.com,O = DigiCert Inc,C = US
      序列号:04:E1:E7:A4:DC:5C:F2:F3:6D:C0:2B:42:B8:5D:15:9F
     验证结果:
      状态:不成功
      SignerStatus:不成功
      SignerVerificationResult:无
  

在社区论坛之后,我已经导入了证书。 通过使用T代码STRUST迁移到SAP。 是否缺少任何步骤?

谢谢。

晴天