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. sql server 数字字符串的排序

    假如我们有这样的数据格式1#XXXXX 20#CCCCC等的一系列数据那么我们如何可以排序出1 ,2,3,4,5,6,7.......这样的数据呢 我们知道整数是可以排序成这样的格式的,但是字符串就不 ...

  2. chrome浏览器network面板出现:Provisional headers are shown 提示

    一般来说,如果看到这个提示,说明这个请求并没有发送出去. 具体原因有多种: 请求被某些扩展如 Adblock 拦截了 请求被墙了 走本地缓存或者 dataurl 的请求 client发送请求后,由于各 ...

  3. package.json 文件中的版本号

    版本号,格式:"主要版本,次要版本,补丁版本" 指定版本:比如1.2.2,遵循"主版本,次要版本,补丁版本"的格式规定,安装时只安装指定版本. 波浪号(tild ...

  4. js 坐标兼容性

    不同浏览器对坐标属性的支持:

  5. maven 知识点1

    在POM 4中,dependency 中还引入了 scope,它主要管理依赖的部署.目前 scope 可以使用5个值: compile,缺省值,适用于所有阶段,会随着项目一起发布. provided, ...

  6. CDN、浏览器缓存

    CDN是什么? 谈到CDN的作用,可以用8年买火车票的经历来形象比喻: 8年前,还没有火车票代售点一说,12306.cn更是无从说起.那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火 ...

  7. RequiresAuthentication

    @RequiresAuthentication 验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时. @RequiresUser 验证用户是否被记忆,us ...

  8. ubuntu 14.04 安装Eclipse与配置环境变量

    1. 安装JDK 1.1 源码包下载 首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/index.html,我下载 ...

  9. linux下syscall函数 间接系统调用

    NAME              syscall - 间接系统调用 SYNOPSIS              #define _GNU_SOURCE               #include ...

  10. Hadoop文件系统支持释疑之S3

    一.引言 Hadoop版本提供了对多种文件系统的支持,但是这些文件系统是以何种方式实现的,其实现原理是什么以前并没有深究过.今天正好有人咨询我这个问题:Hadoop对S3的支持原理是什么?特此总结一下 ...