Abap üzerinden Google Geolocation API kullanım örneğidir. API Key selection screenden almaktadır. Bu kısmı isterseniz kodunuza da gömebilirsiniz.
REPORT zkaan_google_api NO STANDARD PAGE HEADING
LINE-COUNT 132.
TYPE-POOLS:abap.
DATA:
http_client TYPE REF TO if_http_client,
content TYPE string.
PARAMETERS : p_lat TYPE c LENGTH 50 DEFAULT '38.369035'.
PARAMETERS : p_lon TYPE c LENGTH 50 DEFAULT '27.196334'.
PARAMETERS : p_api TYPE c LENGTH 50
DEFAULT 'GOOGLE_API_KEY'.
START-OF-SELECTION.
DATA: lv_http_url TYPE string.
* Prepare the url of the address
CONCATENATE
'https://maps.googleapis.com/maps/api/geocode/xml?key='
'GOOGLE_API_KEY'
'&latlng='
p_lat
','
p_lon
INTO lv_http_url .
CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = lv_http_url
IMPORTING
client = http_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc = 0.
http_client->request->set_header_field( name = '~request_method' value = 'GET' ).
http_client->send( ).
* http_client->receive( ).
* content = http_client->response->get_data( ).
CALL METHOD http_client->receive
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4.
content = http_client->response->get_cdata( ).
http_client->close( ).
ENDIF.
DATA:
v_crlf TYPE char2, "CRLF
v_cr TYPE char1, "CR
v_lf TYPE char1. "LF
v_crlf = cl_abap_char_utilities=>cr_lf.
v_cr = cl_abap_char_utilities=>cr_lf.
v_lf = cl_abap_char_utilities=>newline.
DATA: lf_uz TYPE i.
DATA: lf_pos TYPE i.
DATA: lf_content TYPE string.
data: lf_ek type i.
DO.
lf_uz = strlen( content ).
IF content = ''.
EXIT.
ENDIF.
SEARCH content FOR v_crlf .
IF sy-subrc = 0.lf_ek = 2.
lf_pos = sy-fdpos .
ELSE.
SEARCH content FOR v_cr .
IF sy-subrc = 0.lf_ek = 1.
lf_pos = sy-fdpos .
ELSE.
SEARCH content FOR v_lf .
IF sy-subrc = 0.lf_ek = 1.
lf_pos = sy-fdpos .
ELSE.
lf_pos = lf_uz.
ENDIF.
ENDIF.
ENDIF.
lf_content = content+0(lf_pos).
WRITE:/ lf_content.
ADD lf_ek TO lf_pos.
IF lf_pos GT lf_uz.
EXIT.
ENDIF.
content = content+lf_pos.
ENDDO.
Hiç yorum yok:
Yorum Gönder