ABAP HTTP POST
1.HTTP
DATA: lo_http_client TYPE REF TO if_http_client,
lv_service TYPE string,
lv_result TYPE string,
lo_ixml TYPE REF TO if_ixml,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_istream TYPE REF TO if_ixml_istream,
lo_document TYPE REF TO if_ixml_document,
lo_parser TYPE REF TO if_ixml_parser. lv_service = 'http://...'. cl_http_client=>create_by_url(
EXPORTING
url = lv_service
IMPORTING
client = lo_http_client
EXCEPTIONS
argument_not_found =
plugin_not_active =
internal_error =
OTHERS = ). lo_http_client->propertytype_logon_popup = lo_http_client->co_disabled.
CALL METHOD lo_http_client->authenticate(
EXPORTING
* client = ''
* proxy_authentication = 'X'
username = ''
password = ''
* LANGUAGE = 'E'
).
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = 'Content-Type'
value = 'application/JSON; charset=utf-8'.
CALL METHOD lo_http_client->request->set_method( 'POST' ). DATA lv_json TYPE string.
DATA: len TYPE i .
lv_json = '{"key": "name", "value": "name"}, {"key": "phone", "value": "911"}'.
len = strlen( lv_json ) . CALL METHOD lo_http_client->request->set_cdata
EXPORTING
data = lv_json
offset =
length = len. lo_http_client->send(
EXCEPTIONS
http_communication_failure =
http_invalid_state = ). lo_http_client->receive(
EXCEPTIONS
http_communication_failure =
http_invalid_state =
http_processing_failed = ). CLEAR lv_result .
lv_result = lo_http_client->response->get_cdata( ).
lo_ixml = cl_ixml=>create( ). lo_streamfactory = lo_ixml->create_stream_factory( ).
lo_istream = lo_streamfactory->create_istream_string(
lv_result ).
lo_document = lo_ixml->create_document( ).
lo_parser = lo_ixml->create_parser(
stream_factory = lo_streamfactory
istream = lo_istream
document = lo_document ).
lo_parser->parse( ).
CALL METHOD lo_http_client->close.
调用ODATA service,插入数据,事物码STRUST添加信任证书
2.HTTPS
CALL METHOD cl_http_client=>create
EXPORTING
host = 'api15.sapsf.cn'
service = ''
scheme = ''
ssl_id = 'ANONYM'
* proxy_host = wf_proxy
* proxy_service = wf_port
IMPORTING
client = lo_http_client. lo_http_client->propertytype_logon_popup = lo_http_client->co_disabled.
CALL METHOD lo_http_client->authenticate(
EXPORTING
* client = '110'
* proxy_authentication = 'X'
username = ''
password = ''
* LANGUAGE = 'E'
).
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = '~request_protocol'
value = 'HTTPS/1.0'.
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = '~request_uri'
value = '/odata/v2/......'.
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = 'Content-Type'
value = 'application/json; charset=utf-8'.
CALL METHOD lo_http_client->request->set_method( 'POST' ).
https://www.cnblogs.com/xher/p/6590373.html
3. SAP 发送 HTTP POST(Web Service)
* 拼接XML的内表
DATA:
BEGIN OF wareqtext,
line TYPE c LENGTH ,
END OF wareqtext,
itreqtext LIKE TABLE OF wareqtext. * URL地址 DATA: l_url TYPE string . * 拼接的XML
DATA: strreq TYPE string. * 返回的XML DATA: return_str TYPE string . * 生成提交字符串的xml部分
CLEAR: strreq .
LOOP AT itreqtext INTO wareqtext.
IF strreq IS INITIAL .
strreq = wareqtext.
ELSE. * 有些系统不会自动换行,特加上换行符
CONCATENATE strreq cl_abap_char_utilities=>newline wareqtext-line INTO strreq.
ENDIF.
ENDLOOP. DATA: http_client TYPE REF TO if_http_client .
DATA: len TYPE i . len = STRLEN( strreq ) . CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = l_url
IMPORTING
client = http_client.
http_client->propertytype_logon_popup = http_client->co_enabled . CALL METHOD http_client->request->set_header_field
EXPORTING
name = 'Content-Type'
value = 'text/xml; charset=utf-8'. CALL METHOD http_client->request->set_cdata
EXPORTING
data = strreq
offset =
length = len.
CALL METHOD http_client->send
EXCEPTIONS
http_communication_failure =
http_invalid_state = .
CALL METHOD http_client->receive
EXCEPTIONS
http_communication_failure =
http_invalid_state =
http_processing_failed = . * 获取返回的数据
return_str = http_client->response->get_cdata( ). CALL METHOD http_client->close.
ABAP HTTP POST的更多相关文章
- ABAP单元测试最佳实践
本文包含了我在开发项目中经历过的实用的ABAP单元测试指导方针.我把它们安排成为问答的风格,欢迎任何人添加更多的Q&A's,以完成这个列表. 在我的项目中,只使用传统的ABAP report. ...
- ABAP实现屏幕自己刷新和跳转功能
ABAP开发工程中,有时候需要让跳转出的屏幕自动实现跳转和刷新的功能,该功能的实现需要在屏幕PBO 里面调用相应的事件执行. 关键代码为: SET TITLEBAR ' 屏幕自动程序'. IF g_c ...
- 一步步实现ABAP后台导入EXCEL到数据库【3】
在一步步实现ABAP后台导入EXCEL到数据库[2]里,我们已经实现计划后台作业将数据导入数据库的功能.但是,这只是针对一个简单的自定义结构的导入程序.在实践应用中,面对不同的表.不同的导入文件,我们 ...
- 一步步实现ABAP后台导入EXCEL到数据库【2】
前文:http://www.cnblogs.com/hhelibeb/p/5912330.html 既然后台作业只能在应用服务器运行,那么,我们可以先将要上传的数据保存在应用服务器中,之后再以后台作业 ...
- 让ABAP开发者愈加轻松的若干快捷键
引言 ABAP是一种和当代编程语言在许多方面有着相当不同的编程语言.ABAP的某些方面可能会让我们奇怪,为什么它会如此复杂?而它的某些方面又是那么杰出,给予了ABAP开发者们比其它任何语言更多的便利. ...
- ABAP游标的使用
在Oracle,SQLServer中游标的使用是经常的,所以在ABAP不懂是不行的...... 1.声明游标 OPEN CURSOR [WITH HOLD] <c> FOR SEL ...
- 一步步实现ABAP后台导入EXCEL到数据库【1】
在SAP的应用当中,导入.导出EXCEL文件的情况是一个常见的需求,有时候用户需要将大量数据定期导入到SAP的数据库中.这种情况下,使用导入程序在前台导入可能要花费不少的时间,如果能安排导入程序为后台 ...
- ABAP关键字SUBMIT的简单例子和学习小记
网上有关SUBMIT实现程序调用的例子稍显复杂,而相关的参考和解释则不是很完善.本文给出一个SUBMIT的小示例程序(代码见文末),实现了最简单的程序间调用及返回值,以及SAP官方文档中相关内容的翻译 ...
- ABAP 常见查询问题解决方法
在ABAP 编程的时候会遇到查询单条语句的时候数能取对 但是条目数多了的话 会出现数不准确的问题 原因可能出现在查询使用了二分法查询方式 二分法查询下必须按排序的字段排序 还得按照排序的字段 ...
- SAP ABAP学习路线图--标准教程
SAP ABAP学习路线图--标准教程 摘自:http://www.cnblogs.com/clsoho/archive/2010/07/05/1771400.html
随机推荐
- html5扫面二维码逻辑
写在前面 项目中有这样的需求,在android端嵌入的html5应用中,需要扫描二维码,而一般的浏览器是不允许你调用摄像头的.最后时限方式是由app的webview进行扫描,将扫描结果返回,也就是js ...
- shell实践--shell内嵌指令实现查看上线时间
实践小点子: 1. 做一个shell 内嵌指令例如:ls,cd,pwd这样 就实现查看上线多久: 解决办法有两种: 1) 利用脚本,如新指令为look;利用别名的方法,将look.sh脚本 ...
- 关于 Shiro 的权限匹配器和过滤器
项目源码:https://github.com/weimingge14/Shiro-project演示地址:http://liweiblog.duapp.com/Shiro-project/login ...
- 转:使用Fabric自动化你的任务
转:http://www.cnblogs.com/holbrook/archive/2012/03/05/2380398.html fabric是什么? Fabric是一个Python库,可以通过SS ...
- 转: 微信开源C/C++ RPC框架PhxRPC
转自: http://mp.weixin.qq.com/s?__biz=MzI4NDMyNTU2Mw==&mid=2247483734&idx=1&sn=da364812eca ...
- spring boot 读取配置文件(application.yml)中的属性值
在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: <!-- 支持 @ConfigurationProperties 注 ...
- Java设计模式博客全文件夹
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40031567 今天来对这23种设计模式做个总结.咱使用设计模式的目的是为了可重用代码.让代 ...
- 新版本号的tlplayer for android ,TigerLeapMC for windows公布了
tlplayer for android 新版本号修正了图像倾斜等等问题,添加了动态水印功能. 支持hls(m3u8),http,rtsp,mms,rtmp等网络协议. 声明tlplayer 上的变速 ...
- crm操作业务部门
using System; using System.Linq; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messag ...
- apue学习笔记(第十四章 高级I/O)
本章涵盖了从多概念和函数:非阻塞I/O.记录锁.I/O多路转换.异步I/O.readv和writev函数以及存储映射I/O 非阻塞I/O 非阻塞I/O使我们可以发出open.read和write这样的 ...