1. HTTP发送JSON格式数据:

function zap_01_url_sap_to_c3 .
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_FLAG) TYPE STRING OPTIONAL
*" VALUE(I_TITLE) TYPE STRING
*" VALUE(I_MESSAGE) TYPE STRING
*" EXPORTING
*" VALUE(E_RETURN) TYPE STRING
*" TABLES
*" IT_REVEIVER
*"---------------------------------------------------------------------- data: lv_url type string."http 服务接口地址
data: lo_http_client type ref to if_http_client.
data: lv_respon type string.
data: lv_subrc type sy-subrc.
data: lv_json_str type string. "发送报文
data: lv_msgty type c,
lv_msgtx type string. data: lt_json type standard table of zscma_dyjg,
ls_json type zscma_dyjg. * 设置报文内容
ls_json-source = 'ERP' . "来源 订阅号的英文名
ls_json-sender = 'ERP' . "发送者
ls_json-sender_type = 'S' . "默认个人 P为个人 S为系统 data:lv_reveiver type string. loop at it_reveiver.
if sy-tabix eq .
lv_reveiver = it_reveiver.
else.
lv_reveiver = lv_reveiver && ',' && it_reveiver.
endif.
endloop. ls_json-title = i_title . "发送标题
ls_json-content = i_message.
ls_json-message = 'message'. "
ls_json-channel = 'SUBSCRIPTION'. "
ls_json-messagedata = i_message. " if i_flag is initial. concatenate 'http://XXX.XXX.XXX.XXX:XXXX/mc/core/message/sendMessageUnitForCode?source=' ls_json-source
'&sender='ls_json-source'&sender_type=S&receiver='lv_reveiver'&title='ls_json-title
'&content='ls_json-content'&message='ls_json-message
'&channel=SUBSCRIPTION&messageData=%7B%22type%22%3A%2210002%22%2C%22createTime%22%3A%22%22%2C%22remarkUrl%22%3A%22http%3A%2F%2Fwww.baidu.com%22%7D'
into lv_url . * /mc/core/message/sendMessageUnitForCode
* /mc/core/message/sendMessageUnit elseif i_flag eq 'X'.
concatenate 'http://XXX.XXX.XXX.XXX:XXXX/mc/core/message/sendMessageUnitForCode?source=' ls_json-source
'&sender='ls_json-source'&sender_type=S&receiver='lv_reveiver'&title='ls_json-title
'&content='ls_json-content'&message='ls_json-message
'&channel=SUBSCRIPTION&messageData=%7B%22type%22%3A%2210002%22%2C%22createTime%22%3A%22%22%2C%22remarkUrl%22%3A%22http%3A%2F%2Fwww.baidu.com%22%7D'
into lv_url .
endif. "创建客户端请求
call method cl_http_client=>create_by_url
exporting
url = lv_url
importing
client = lo_http_client
exceptions
argument_not_found =
plugin_not_active =
internal_error =
others = . "设定传输请求内容格式以及编码格式
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 ). "发送请求
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 = ). e_return = lo_http_client->response->get_cdata( ). e_return = e_return+(). translate e_return to upper case. endfunction.

2. 调用ODATA service,插入数据,事物码STRUST添加信任证书。

 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' ).

ABAP-HTTP发送JSON的更多相关文章

  1. ABAP接口之Http发送json报文

    abap 调用http 发送 json 测试函数 SE11创建结构:zsmlscpnotice SE37创建函数:zqb_test_http_fuc1 FUNCTION zqb_test_http_f ...

  2. PHP如何通过Http Post请求发送Json对象数据?

    因项目的需要,PHP调用第三方 Java/.Net 写好的 Restful Api,其中有些接口,需要 在发送 POST 请求时,传入对象. Http中传输对象,最好的表现形式莫过于JSON字符串了, ...

  3. SpringMVC客户端发送json数据时报400错误

    当测试客户端发送json数据给服务器时,找不到响应路径? 原来是参数类型不符,即使是json也要考虑参数的个数和类型 解决:将age请求参数由"udf"改为"3" ...

  4. JMeter学习(三十五)使用jmeter来发送json/gzip格式数据

    一.使用jmeter来发送gzip数据 有时候我们需要模拟在客户端将数据压缩后, 发送(post)到服务器端. 通常这种情况,会发生在移动终端上. 这样做的好处, 是可以节省流量.  当然, 服务器返 ...

  5. java httpclient发送json 请求 ,go服务端接收

    /***java客户端发送http请求*/package com.xx.httptest; /** * Created by yq on 16/6/27. */ import java.io.IOEx ...

  6. iOS开发网络篇—发送json数据给服务器以及多值参数

    iOS开发网络篇—发送json数据给服务器以及多值参数 一.发送JSON数据给服务器 发送JSON数据给服务器的步骤: (1)一定要使用POST请求 (2)设置请求头 (3)设置JSON数据为请求体 ...

  7. 【转】iOS开发网络篇—发送json数据给服务器以及多值参数

    原文: http://www.cnblogs.com/wendingding/p/3950132.html 一.发送JSON数据给服务器 发送JSON数据给服务器的步骤: (1)一定要使用POST请求 ...

  8. Jmeter 发送json{Jfinal 接口req rsp均为json}

    链接地址:http://yangyoupeng-cn-fujitsu-com.iteye.com/blog/2013649 使用jmeter发送json数据.方法有三种 原创,转载请注明出处 1.利用 ...

  9. perl post发送json数据

    sub  wx_init {                #$login_url ="https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxinit?r=- ...

  10. 利用 CURL 发送JSON格式字符串

    /* * post 发送JSON 格式数据 * @param $url string URL * @param $data_string string 请求的具体内容 * @return array ...

随机推荐

  1. TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点

    TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点 首先提醒一下,第7讲的最后滑动平均的代码已经更新了,代码要比理论重要 今天是过拟合,和正则化,本篇后面可能或更有兴趣, ...

  2. kettle的资源库

    在kettle中的转换或者作业等资源的存储的仓库称为资源库:分为文件资源库.数据库资源库. 一个转换或者作业可以属于某个资源库或者一个单独的文件形态存在. 一.数据库资源库 1.1在mysql中创建一 ...

  3. uml 知识点

    Unified Modeling Language (UML)又称统一建模语言或标准建模语言

  4. java 中一些需要注意的知识点

    java数组的length属性是容量,而不是数组真实元素的个数: 多线程中的interrupt()方法并不会终止处于"运行状态"的线程,它只是将线程的中断标记设为true. juc ...

  5. bzoj 3674 可持久化并查集加强版——可持久化并查集

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3674 用主席树维护 fa[ ]  和 siz[ ] .改 fa[ ] 和改 siz[ ] 都 ...

  6. python中的with

    看例 """ 需求:不用数据库连接池,实现数据库链接操作 """ class SQLHelper(object): def open(sel ...

  7. FPGA远程更新之限制条件

    FPGA可重配置带来了很高的灵活性,所以基于FPGA的设计/产品往往也会有后期更新/升级的需求.同时,需要更新/升级的FPGA板卡由于物理条件的限制,可能无法现场升级.比如: 1.FPGA板卡部署在异 ...

  8. 杂项:node.js

    ylbtech-杂项:node.js Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装.No ...

  9. table边框

    border-collapse 语法 border-collapse:separate | collapse | inherit 默认值:separate 取值 separate: 默认值.边框会被分 ...

  10. GameObject数组

    一.声明 GameObject[] rock = ]; 二.遍历 可以先声明一个GameObject的数组GameObject[], 然后把需要遍历的对象放进去,然后可以用下面两种方式遍历:1.for ...