20170313 ABAP以jason 格式返回值到http(接口内容返回)
2017-03-13 11:45
225 查看
问题1:
返回jason 格式信息给你们这步不通,
这个可以怎么处理,
***得到SCP 系统开发回复,他们需要调整方法;
(1)调用函数做RETURN,
11:37:47
返回JASON 内容
[{functionname: "ZMLSCP1_FR0005", bcpcode: "20170313001", status: "S", msg: "写入自建表成功!", result: ""}]
11:40:14
现在返回内容到这个地址http://deiap.changhong.com:18082/PM/ScpFunction/DispatchNotice
20170313 测试问题:
LV_RESPON: {"isSuccessful":true,"Msg":"数据取得中..."}
SCP 那边反馈拿不到数据!!!
返回jason 格式信息给你们这步不通,
这个可以怎么处理,
***得到SCP 系统开发回复,他们需要调整方法;
(1)调用函数做RETURN,
IT_ZSMLSCPNOTICE-FUNCTIONNAME = 'ZMLSCP1_FR0005'. IT_ZSMLSCPNOTICE-BCPCODE = BCPCODE. IT_ZSMLSCPNOTICE-STATUS = O_STATU. IT_ZSMLSCPNOTICE-MSG = O_MSG. IT_ZSMLSCPNOTICE-RESULT = ''. APPEND IT_ZSMLSCPNOTICE. CLEAR:IT_ZSMLSCPNOTICE. CALL FUNCTION 'ZMLSCP1_FR0018' EXPORTING L_FNAME = 'ZMLSCP1_FR0018' IMPORTING EV_MSGTY = L_MSGTY EV_MSGTX = L_MSGTX TABLES IT_INPUT = IT_ZSMLSCPNOTICE. * O_STATU = L_MSGTY. O_MSG = '调用返回结果函数: ' && L_MSGTX.
FUNCTION ZMLSCP1_FR0018 . *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" VALUE(L_FNAME) TYPE RS38L_FNAM OPTIONAL *" EXPORTING *" VALUE(EV_MSGTY) TYPE CHAR1 *" VALUE(EV_MSGTX) TYPE STRING *" TABLES *" IT_INPUT STRUCTURE ZSMLSCPNOTICE OPTIONAL *"---------------------------------------------------------------------- DATA: JSON_SER TYPE REF TO CL_TREX_JSON_SERIALIZER, JSON_DES TYPE REF TO CL_TREX_JSON_DESERIALIZER. DATA: LV_URL TYPE STRING."http 服务接口地址 DATA: LO_HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT. DATA: LV_LEN TYPE I."发送报文长度 DATA: LV_RESPON TYPE STRING. DATA: LV_SUBRC TYPE SY-SUBRC. DATA: LV_JSON_STR TYPE STRING. "发送报文 IF L_FNAME EQ SPACE. L_FNAME = 'ZMLSCP1_FR0018'. ENDIF. * 设置HTTP接口地址 SELECT SINGLE ZADDR INTO LV_URL FROM ZMLSCP_URL_CFG WHERE SYSID EQ SY-SYSID AND FUNCTIONNAME EQ L_FNAME. IF LV_URL IS INITIAL. EV_MSGTY = 'E'. EV_MSGTX = SY-SYSID && '表ZMLSCP_URL_CFG未配置服务地址'. EXIT. ENDIF. * 内表->JSON 设置报文内容(json格式字符串) CREATE OBJECT JSON_SER EXPORTING DATA = IT_INPUT[]. CALL METHOD JSON_SER->SERIALIZE. CALL METHOD JSON_SER->GET_DATA RECEIVING RVAL = LV_JSON_STR. "创建客户端请求 CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL EXPORTING URL = LV_URL IMPORTING CLIENT = LO_HTTP_CLIENT EXCEPTIONS ARGUMENT_NOT_FOUND = 1 PLUGIN_NOT_ACTIVE = 2 INTERNAL_ERROR = 3 OTHERS = 4. IF SY-SUBRC <> 0. CALL FUNCTION 'MESSAGE_TEXT_BUILD' EXPORTING MSGID = SY-MSGID MSGNR = SY-MSGNO MSGV1 = SY-MSGV1 MSGV2 = SY-MSGV2 MSGV3 = SY-MSGV3 MSGV4 = SY-MSGV4 IMPORTING MESSAGE_TEXT_OUTPUT = EV_MSGTX. EV_MSGTY = 'E'. EXIT. ENDIF. "设定传输请求内容格式以及编码格式 LO_HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' ). "设定调用服务 LO_HTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ). "设置待传输内容 LV_LEN = STRLEN( LV_JSON_STR ). CALL METHOD LO_HTTP_CLIENT->REQUEST->SET_CDATA EXPORTING DATA = LV_JSON_STR OFFSET = 0 LENGTH = LV_LEN. "发送请求 LO_HTTP_CLIENT->SEND( EXCEPTIONS HTTP_COMMUNICATION_FAILURE = 1 HTTP_INVALID_STATE = 2 ). IF SY-SUBRC <> 0. "操作失败,获取失败原因 LO_HTTP_CLIENT->GET_LAST_ERROR( IMPORTING MESSAGE = EV_MSGTX ). EV_MSGTY = 'E'. EXIT. ENDIF. "读取远程服务返回的处理过结果。 LO_HTTP_CLIENT->RECEIVE( EXCEPTIONS HTTP_COMMUNICATION_FAILURE = 1 HTTP_INVALID_STATE = 2 HTTP_PROCESSING_FAILED = 3 ). IF SY-SUBRC <> 0 . LO_HTTP_CLIENT->GET_LAST_ERROR( IMPORTING MESSAGE = EV_MSGTX ). EV_MSGTY = 'E'. EXIT. ELSE. "读取返回返回内容 CLEAR LV_RESPON. LV_RESPON = LO_HTTP_CLIENT->RESPONSE->GET_CDATA( ). MOVE LV_RESPON TO EV_MSGTX. EV_MSGTY = 'S'. ENDIF. ENDFUNCTION.
11:37:47
返回JASON 内容
[{functionname: "ZMLSCP1_FR0005", bcpcode: "20170313001", status: "S", msg: "写入自建表成功!", result: ""}]
11:40:14
现在返回内容到这个地址http://deiap.changhong.com:18082/PM/ScpFunction/DispatchNotice
20170313 测试问题:
LV_RESPON: {"isSuccessful":true,"Msg":"数据取得中..."}
SCP 那边反馈拿不到数据!!!
相关文章推荐
- .net http post接口返回json格式数据
- 明确出需求 然后开会评审 要什么接口 接口参数、返回json内容、格式 协定好 在做
- WebApi 接口返回值不困惑:返回值类型详解。IHttpActionResult、void、HttpResponseMessage、自定义类型
- SSM编写http接口返回JSON格式数据
- servlet中使用HttpServletResponseWrapper截获返回的页面内容
- AJAX省级联动Demo+总结XMLHttpRequest 三个返回格式选取策略
- httpwebrequest抓取返回值时返回一个?解决方案
- 引用 Servlet中使用HttpServletResponseWrapper截获返回的页面内容
- 在ASP.NET中XMLHTTP.RESPONSETEXT的返回值全部是HTML代码,怎样才能只返回我RESPONSE.WRITE的内容
- 中国天气网接口返回json格式分析及接口(XML、图片接口)说明!
- JAVA发送HTTP请求,返回HTTP响应内容,实例及应用
- 使用JAVA发送HTTP请求(Http Request),返回HTTP响应(Http Response)内容,代码程序例子及原理说明
- JAVA发送HTTP请求,返回HTTP响应内容,实例及应用
- 关于http接口开发中json格式数据编码问题处理
- webdis实现Redis的http接口及多数据格式共享 [含json,restful] 推荐
- JAVA发送HTTP请求,返回HTTP响应内容,实例及应用
- HTTP内容格式
- HTTP 内容格式(协议)
- 获取http接口内容的封装工具类
- libcurl如何解压gzip格式的http body返回