SAP与JSON的接口实施1.docx
- 文档编号:313962
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:10
- 大小:26.88KB
SAP与JSON的接口实施1.docx
《SAP与JSON的接口实施1.docx》由会员分享,可在线阅读,更多相关《SAP与JSON的接口实施1.docx(10页珍藏版)》请在冰豆网上搜索。
SAP与JSON的接口实施1
SAP-与-JSON的接口实施1
SAP与JSON接口的实现方式
1
2
3什么是JSON
有一种叫做JSON(JavaScriptObjectNotation)的轻量级数据交换格式能够替代XML的工作.优点:
1.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小2.易于解析这种语言,客户端JavaScript可以简单的通过eval()进行JSON数据的读取3.支持多种语言。
4JSON的一般调用
4.1Step1:
Sendtherequest
SendaJSONrequestviaGETtoCertipediatotherelevantAPIendpoint,e.g.:
http:
//xx.xx.0.216/api/keywords
Note1:
TherequesthastobeauthorizedviaBasicaccessauthentication.
Note2:
Thedataarealways
∙returnedJSON-encodedintheHTTPresponse
∙structuredasanArrayofHashes
4.2Step2:
Receiveandinterprettheresponse
ExampleHTTPresponseinwhichsinglekeywordisreceived:
[
{
"key":
"yield-tested",
"deleted_at":
null,
"translations":
{
"en":
{
"name":
"YieldTested"
},
"de":
{
"name":
"Ergiebigkeit
},
"pl":
{
"name":
"Przebadanawydajność"
}
}
}
]
Note:
可以在IE中直接输入JSONrequest的地址,能够看到返回结果。
5SAP与JSON接口实施案例一
5.1接口背景
5.1.1Request无参数
5.1.2Receive是纯数据
5.2变量定义
DATA:
lo_clientTYPEREFTOif_http_client,
lo_requestTYPEREFTOif_http_request,
lv_resultTYPEstring,
lv_errocodeTYPEsysubrc,
lv_messageTYPEstring,
lv_inputTYPEstring,
lv_xinputTYPExstring.
DATA:
lr_json_readerTYPEREFTOif_sxml_reader.
DATA:
lv_urlTYPEstring.
TYPES:
BEGINOFlty_keywords,
keyTYPEstring,
deleted_atTYPEstring,
translationsTYPEty_trans,
ENDOFlty_keywords.
DATA:
lt_resultTYPETABLEOFlty_keywords.
5.3调用JSONrequest
lv_url='http:
//xx.xxx.0.217/api/keywords'.
CALLMETHODcl_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.
IFsy-subrcISNOTINITIAL.
"Error
EXIT.
ENDIF.
lo_client->request->set_header_field(EXPORTINGname='~request_method'value='GET').
lo_client->authenticate(
EXPORTING
*proxy_authentication='X'
username='certipedia'
password='jfds8201'
*language=
).
CALLMETHODlo_client->send
EXCEPTIONS
http_communication_failure=1
http_invalid_state=2
http_processing_failed=3
http_invalid_timeout=4
OTHERS=5.
IFsy-subrc<>0.
MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgno
WITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.
ENDIF.
5.4接受返回值
CALLMETHODlo_client->receive
EXCEPTIONS
http_communication_failure=1
http_invalid_state=2
http_processing_failed=3
OTHERS=4.
CALLMETHODlo_client->get_last_error
IMPORTING
code=lv_errocode
message=lv_message.
lv_input=lo_client->response->get_cdata().
5.5返回数据格式转换
CALLFUNCTION'SCMS_STRING_TO_XSTRING'
EXPORTING
text=lv_input
IMPORTING
buffer=lv_xinput
EXCEPTIONS
failed=1
OTHERS=2.
IFsy-subrc<>0.
*Implementsuitableerrorhandlinghere
ENDIF.
lr_json_reader=cl_sxml_string_reader=>create(input=lv_xinput).
CALLTRANSFORMATIONidSOURCEXMLlr_json_reader
RESULTkeywords=lt_result.
lo_client->close().
6SAP与JSON接口实施案例二
6.1接口背景
6.1.1Request有传入参数
6.1.2Receive是返回一个jpg的URL
6.2数据定义
DATA:
lo_clientTYPEREFTOif_http_client,
lo_requestTYPEREFTOif_http_request,
lv_parameterTYPEstring,
lv_parameter2TYPEstring.
DATA:
lv_resultTYPEstring,
lv_errocodeTYPEsysubrc,
lv_messageTYPEstring.
DATA:
ls_configTYPEzwzert_id_inf,
lv_usernameTYPEstring,
lv_pswTYPEstring,
lv_urlTYPEstring.
6.3处理参数
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).
CALLFUNCTION'CONVERT_STRING_TO_TABLE'
EXPORTING
i_string=lv_parameter
i_tabline_length=80
TABLES
et_table=lt_table.
6.4发送JSONrequest
CALLMETHODcl_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(EXPORTINGname='~request_method'value='POST').
lo_client->request->set_header_field(EXPORTINGname='~request_protocol'value='HTTP/1.0').
lo_client->request->set_header_field(EXPORTINGname='Content-Type'value='text/xml').
CALLMETHODlo_client->request->set_header_field
EXPORTING
name='~request_uri'
value='/generator/tdcgenerator.svc/generator'.
lo_client->request->set_cdata(EXPORTINGdata=lv_parameteroffset=0length=lv_length).
CALLMETHODlo_client->authenticate
EXPORTING
*proxy_authentication='X'
*client=
username=lv_use
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAP JSON 接口 实施