abap cer证书 post_ABAP接口之Http发送json报文

abap 调用http 发送 json 测试函数

SE11创建结构:zsmlscpnotice

SE37创建函数:zqb_test_http_fuc1

FUNCTION zqb_test_http_fuc1.

*"----------------------------------------------------------------------

*"*"本地接口:

*"----------------------------------------------------------------------

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. "发送报文

DATA: lv_msgty TYPE c,

lv_msgtx TYPE string.

DATA: lt_json TYPE STANDARD TABLE OF zsmlscpnotice,

ls_json TYPE zsmlscpnotice.

* 设置HTTP接口地址

lv_url = 'http://ip:端口/服务'.

* 设置报文内容(json格式字符串)

ls_json-functionname = 'XXXXXX'.

ls_json-bcpcode = '20170214000000'.

ls_json-status = 'S'.

ls_json-msg = '请调用接口抓取数据'.

ls_json-result = ''.

APPEND ls_json TO lt_json.

* 内表->JSON

CREATE OBJECT json_ser

EXPORTING

data = lt_json[].

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.

"lv_subrc = sy-subrc.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH

sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

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.

"操作失败,获取失败原因

"lv_subrc = sy-subrc.

lo_http_client->get_last_error( IMPORTING message = lv_msgtx ).

lv_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 .

"lv_subrc = sy-subrc.

lo_http_client->get_last_error( IMPORTING message = lv_msgtx ).

lv_msgty = 'E'.

EXIT.

ELSE.

"读取返回返回内容

CLEAR lv_respon.

lv_respon = lo_http_client->response->get_cdata( ).

ENDIF.

ENDFUNCTION.

Java 用HTTP的方式发送JSON报文请求

前言: 项目调用第三方接口时,通常是用socket或者http的通讯方式发送请求:http 为短连接,客户端发送请求都需要服务器端回送响应,请求结束后,主动释放链接.Socket为长连接:通常情况下S ...

使用LR编写HTTP协议Json报文格式接口脚本实战

最近在做HTTP协议接口压测时,遇到一些编写脚本方面的问题,在这里总结记录下,以便以后温习,也希望能帮助到和我有同样困惑的朋友吧. //实战代码如下所示:Action() { lr_start_tra ...

python通过http请求发送soap报文进行webservice接口调用

最近学习Python调用webservice 接口,开始的时候主要采用suds 的方式生产client调用,后来发现公司的短信接口采用的是soap报文来调用的,然后开始了谷歌,最后采用httplib ...

python使用requests发送application&sol;json报文数据

def client_post_jsondata_requests(request_url,requestJSONdata): #功能说明:发送json请求报文到指定的地址并获取请求响应报文 #输入参 ...

【Java】接口开发中关于接受和发送json的相关范例

接受json package com.suneee.scn.wms.web.rocketmq; import java.util.List; import net.sf.json.JSONArray; ...

HttpClient发送Json数据到指定接口

项目中遇到将Json数据发送到指定接口,于是结合网上利用HttpClient进行发送. /** * post发送json数据 * @param url * @param param * @return ...

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

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

ABAP-HTTP发送JSON

1. HTTP发送JSON格式数据: function zap_01_url_sap_to_c3 . *"------------------------------------------ ...

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

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

随机推荐

Swift3&period;0P1 语法指南——函数

原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...

php常用的操作

一.  php配置 1.禁止一些函数disable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passt ...

react基础篇入门组件

讲述一下React: 1.声明式设计-React采用声明范式,可以轻松描述应用 2.高效-React通过DOM模型,最大限度的减少dom的交互 3.灵活-React可以与已知的库或框架很好的配合 4. ...

CMDB服务器管理系统【s5day90】:API构造可插拔式插件逻辑

1.服务器端目录结构: 1.__init__.py from django.conf import settings from repository import models import impo ...

php 计算出一年中每周的周一日期

最近接到一个任务,归纳起来,就是:要算出每年当中,每周的周一日期.想了一会,看了下date函数,深入了解了一下date函数各个参数的含义之后,终于把这道题做出来了! 在date()函数中,有一个参数对 ...

微信小程序大型系统架构中应用Redis缓存要点

在大型分布式系统架构中,必须选择适合的缓存技术以应对高并发,实现系统相应的高性能,酷客多小程序经过慎重选型,选择了采用基于腾讯云服务的Redis弹性缓存技术,结合Redis官方推荐的.NET驱动类库S ...

Windows下 安装Jenkins 并发布至docker 实战

网上的教程基本都是Linux系统下安装Jenkins,并且发布到Linux系统下的docker中, 于是打算在全部windows的环境中,完成Jenkins的持续集成功能. 环境: 服务器环境: wi ...

线上分享-- 基于DDD的&period;NET开发框架-ABP介绍

前言 为了能够帮助.Net开发者开拓视野,更好的把最新的技术应用到工作中,我在3月底受邀到如鹏网.net训练营直播间为各位学弟学妹们进行ABP框架的直播分享.同时为了让更多的.NET开发者了解ABP框 ...

安装Helm

一:1.下载helm-v2.10.0-linux-amd64.tar.gz 地址:https://github.com/kubernetes/helm/releases2,解压缩 tar -zxvf ...

Highcharts 环境配置

Highcharts 环境配置 本章节我们将为大家介绍如何在网页中使用 Highcharts. Highcharts 依赖于 jQuery,所以在加载 Highcharts 前必须先加载 jQuery ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值