javascript
SAP 与 JSON 接口实施案例二
? DATA: lo_client TYPE REF TO if_http_client,
??????? lo_request TYPE REF TO if_http_request,
?????? lv_parameter TYPE string,
??????? lv_parameter2 TYPE string.
?
? DATA: lv_result TYPE string,
??????? lv_errocode TYPE sysubrc,
??????? lv_message TYPE string.
?
? DATA: ls_config TYPE zwzert_id_inf,
??????? lv_username?? TYPE string,
??????? lv_psw??? TYPE string,
??????? lv_url??? TYPE string.
?
?? lv_parameter = ' { '
???? & '"id": "=ID=",'
???? & '"caption": =TMC=, '
???? & '"layout": 3,'
???? & '"keywords": [ =KEYWORD=],'
???? & '"qr_code_url": null,'
???? & ' "third_party_mark": null,'
???? & ' "annual_ring_range": null,'
???? & ' "annual_ring_text": null,'.
?
??? lv_parameter2 =
??? ' "output_format": 1,'
??? & ' "output_quality": 1,'
*??? & ' "generate_zip": true,'
??? & ' "generate_zip": false,'
??? & ' "use_small_font": =FONT=,'
??? & ' "langs": ['
??? &? ' "=LANG=",'
??? &? ' "=LANG=",'
??? &?? '"=LANG="'
*??? & ' ]'
??? & ' ],'
??? & '"generate_jpg_instead_png":true'
& '}'.
?
? lv_length = strlen( lv_parameter ).
?
?
? CALL FUNCTION 'CONVERT_STRING_TO_TABLE'
??? EXPORTING
????? i_string???????? = lv_parameter
????? i_tabline_length = 80
??? TABLES
????? et_table???????? = lt_table.
?
? CALL METHOD cl_http_client=>create_by_url
??? EXPORTING
????? url??????????????? = lv_url?
??? IMPORTING
????? client???????????? = lo_client
??? EXCEPTIONS
????? argument_not_found = 1
????? plugin_not_active? = 2
????? internal_error???? = 3
????? OTHERS???????????? = 4.
?
? lo_client->request->set_header_field( EXPORTING name = '~request_method' value = 'POST' ).
?
? lo_client->request->set_header_field( EXPORTING name = '~request_protocol' value = 'HTTP/1.0' ).
?
? lo_client->request->set_header_field( EXPORTING name = 'Content-Type' value = 'text/xml' ).
?
? CALL METHOD lo_client->request->set_header_field
??? EXPORTING
????? name? = '~request_uri'
????? value = '/generator/tdcgenerator.svc/generator'.
?
? lo_client->request->set_cdata( EXPORTING data? = lv_parameter offset = 0? length = lv_length ).
?
CALL METHOD lo_client->authenticate
??? EXPORTING
*????? proxy_authentication = 'X'
*???? client?????????????? =
????? username???????????? = lv_username
????? password???????????? = lv_psw
*???? language???????????? =
??? .
?
? CALL METHOD lo_client->send
??? EXCEPTIONS
????? http_communication_failure = 1
????? http_invalid_state???????? = 2
????? http_processing_failed???? = 3
????? http_invalid_timeout?????? = 4
????? OTHERS???????????????????? = 5.
? IF sy-subrc <> 0.
??? MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
????????????? WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
? ENDIF.
?
? CALL METHOD lo_client->receive
??? EXCEPTIONS
????? http_communication_failure = 1
????? http_invalid_state???????? = 2
????? http_processing_failed???? = 3
????? OTHERS???????????????????? = 4.
?
? CALL METHOD lo_client->get_last_error
??? IMPORTING
????? code??? = lv_errocode
????? message = lv_message.
?
? lv_result = lo_client->response->get_cdata( ).
?
*JPG
? FIND REGEX 'http.*jpg' IN lv_result
?????? MATCH OFFSET lv_moff
?????? MATCH LENGTH lv_mlen.
?
? TRY .
????? ev_url = substring( val = lv_result off = lv_moff len = lv_mlen ).
??? CATCH cx_sy_range_out_of_bounds.
????? MESSAGE e151(zw).
? ENDTRY.
? lo_client->close( ).
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的SAP 与 JSON 接口实施案例二的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP 与 JSON 接口实施案例一
- 下一篇: 【ABAP】模式(Pattern)创建与