news 2026/6/10 0:15:22

08.08.01.tiptop webserver接口篇(制作接口:自定义发送接口)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
08.08.01.tiptop webserver接口篇(制作接口:自定义发送接口)
  • 基础知识:
    • 08.07.01.tiptop webserver接口篇(环境搭建 搭建webserver服务器软件准备)
    • 08.07.02.tiptop webserver接口篇(创建webserver服务器)

本页目录

  • 1、写代码
  • 2、测试

写代码

  • 4gl
IMPORT xml IMPORT com DATABASE ds GLOBALS"../../config/top.global"GLOBALS DEFINE g_curs_index LIKE type_file.num10, g_row_count LIKE type_file.num10, request com.HTTPRequest, response com.HTTPResponse, reader xml.DomDocument, requestData xml.DomDocument, wsstatus INTEGER, url STRING END GLOBALS MAIN DEFINE p_row,p_col LIKE type_file.num5 LET p_row=ARG_VAL(1)LET p_col=ARG_VAL(2)OPTIONS FORM LINE FIRST +2, MESSAGE LINE LAST, PROMPT LINE LAST, INPUT NO WRAP DEFER INTERRUPT IF(NOT cl_user())THEN EXIT PROGRAM END IF WHENEVER ERROR CALL cl_err_msg_log IF(NOT cl_setup("CZZ"))THEN EXIT PROGRAM END IF CALL cl_used(g_prog,g_time,1)RETURNING g_time -- 計算使用時間(進入時間)# 打開窗口LET p_row=5LET p_col=10-- 給變量賦值 OPEN WINDOW test_w AT p_row,p_col WITH FORM"czz/42f/p_test"ATTRIBUTE(STYLE=g_win_style CLIPPED)CALL cl_ui_init()-- 初始化程序設定 CALL test_menu()-- 調用test_menu函數 CLOSE WINDOW test_w CALL cl_used(g_prog,g_time,2)RETURNING g_time -- 計算使用時間(退出時間)END MAIN# Pattern name...: test_menu()# Descriptions...:画面的ToolBar的设置函数FUNCTION test_menu()# ToolBar的設置MENU""BEFORE MENU CALL cl_navigator_setting(g_curs_index, g_row_count)-- 重新設定TOOLBAR上的『上筆、跳筆、下筆』等五個按鍵是否可用 / 不可用。 ON ACTION query -- 查询按钮 CALL sendXMLHTTPRequest()ON IDLE g_idle_seconds CALL cl_on_idle()CONTINUE MENU ON ACTION locale --语言按钮 CALL cl_dynamic_locale()#切换CALL cl_show_fld_cont()#显示ON ACTION qbe_select --条件查询 CALL cl_qbe_select()ON ACTIONhelp--帮助/说明按钮 CALL cl_show_help()ON ACTION about --程式咨询按钮 CALL cl_about()ON ACTION controlg --程式切换 CALL cl_cmdask()ON ACTIONexit-- 離開按鈕 LET INT_FLAG=FALSE EXIT MENU ON ACTION close -- 窗口右上角x按钮 LETINT_FLAG=FALSE EXIT MENU END MENU END FUNCTION# @mathodName:sendXMLHTTPRequest# @author:李德凯 2665252078@qq.com# @date:Created in 2026-02-02# @description: 发送XML请求FUNCTION sendXMLHTTPRequest()LETurl="http://10.3.11.155:8080/axis2/services/SOAPServer?wsdl"TRY LET request=com.HTTPRequest.Create(url)CALL request.setMethod("POST")CALL request.setHeader("Content-Type","text/xml;charset=UTF-8")CALL dataXML()RETURNING requestData CALL request.doXmlRequest(requestData)CATCH LET wsstatus=STATUS CALL WSHelper_FillSOAP11WSError("Client","Cannot create HTTPRequest")RETURN wsstatus END TRY CALL getXMLHTTPResponse()END FUNCTION# @mathodName:dataXML# @author:李德凯 2665252078@qq.com# @date:Created in 2026-02-02# @description: 发送XML的内容FUNCTION dataXML()DEFINE doc xml.DomDocument, inputXML STRING LETinputXML="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"xmlns:ser=\"http://service.web.com\">"," <soapenv:Header/>"," <soapenv:Body>"," <ser:sayHi>"," <ser:user>1111111111</ser:user>"," </ser:sayHi>"," </soapenv:Body>","</soapenv:Envelope>"LETdoc=XML.DomDocument.create()CALL doc.loadFromString(inputXML)CALL doc.save("/u1/out/r1.xml")RETURN doc END FUNCTION# @mathodName:getXMLHTTPResponse# @author:李德凯 2665252078@qq.com# @date:Created in 2026-02-02# @description: 接收XML请求FUNCTION getXMLHTTPResponse()TRY LET response=request.getResponse()DISPLAYresponse.getStatusCode()TO FORMONLY.cn LET reader=response.getXmlResponse()CALL reader.save("/u1/out/r2.xml")CATCH LET wsstatus=status CALL WSHelper_FillSOAP11WSError("Server",SQLCA.SQLERRM)RETURN wsstatus END TRY END FUNCTION
  • 4fd
<?xml version="1.0" encoding="UTF-8" ?><ManagedFormgstVersion="22800"name="ManagedForm"uid="{af5ad751-b013-4f36-bc81-4773731c8bc1}"><AGSettings/><RecordadditionalTables=""joinLeft=""joinOperator=""joinRight=""name="Undefined"order=""uid="{c233f40c-640c-40e0-833e-ca7f543fbfd8}"where=""><RecordFieldcolName=""fieldIdRef="1"name="cn"sqlTabName=""table_alias_name=""uid="{5174eab5-7665-4527-a3fd-4a6e66b6d17a}"/></Record><FormgridHeight="8"gridWidth="49"name="Form"text="Form"><VBoxgridHeight="8"gridWidth="48"name="VBox1"posX="0"posY="0"><GridgridHeight="6"gridWidth="48"name="Grid1"posX="0"posY="1"><EditaggregateColName=""aggregateName=""aggregateTableAliasName=""aggregateTableName=""colName=""columnCount=""fieldId="1"gridHeight="1"gridWidth="10"name="cn"posX="9"posY="2"rowCount=""sqlTabName=""stepX=""stepY=""tabIndex="1"table_alias_name=""title="Edit1"widget="Edit"/></Grid></VBox></Form><DiagramLayout><![CDATA[AAAAAgAAAEwAewBjADIAMwAzAGYANAAwAGMALQA2ADQAMABjAC0ANAAwAGUAMAAtADgAMwAzAGUALQBjAGEANwBmADUANAAzAGYAYgBmAGQAOAB9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEwAewA1ADEANwA0AGUAYQBiADUALQA3ADYANgA1AC0ANAA1ADIANwAtAGEAMwBmAGQALQA0AGEANgBlADYANgBiADYAZAAxADcAYQB9QCQAAAAAAABAQoAAAAAAAAAAAAAAAAAAAQ==]]></DiagramLayout></ManagedForm>
  • 编译
# 上传代码cd/u1/topprod/topcust/czz/4fd put p_test.4fdcd/u1/topprod/topcust/czz/4gl put p_test.4gl# 编译cd/u1/topprod/topcust/czz/4fd r.f2 p_test2ccd/u1/topprod/topcust/czz/4gl r.c2 p_test r.l2 p_testrm-rf /u1/out/r1.xmlrm-rf /u1/out/r2.xml

测试

  • 运行
exe2 p_test# 触发后获取xmlget /u1/out/r1.xml get /u1/out/r2.xml
  • 发送的xml内容:/u1/out/r1.xml
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:ser="http://service.web.com"><soapenv:Header/><soapenv:Body><ser:sayHi><ser:user>1111111111</ser:user></ser:sayHi></soapenv:Body></soapenv:Envelope>
  • 返回的xml内容:u1/out/r2.xml
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns:sayHiResponsexmlns:ns="http://service.web.com"><ns:return>Hi, 1111111111</ns:return></ns:sayHiResponse></soapenv:Body></soapenv:Envelope>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:33:14

杰理之添加设备(优先)独立模式功能【篇】

diff --git a/SDK/apps/soundbox/include/app_config.h b/SDK/apps/soundbox/include/app_config.h index 1b8b4af…65db090 100644 — a/SDK/apps/soundbox/include/app_config.hb/SDK/apps/soundbox/include/app_config.h-276,4 276,9 #define TCFG_LOWPOWER_LOWPOWER_SE…

作者头像 李华
网站建设 2026/6/10 12:38:47

信管毕设2026题目答疑

1 引言 毕业设计是大家学习生涯的最重要的里程碑&#xff0c;它不仅是对四年所学知识的综合运用&#xff0c;更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要&#xff0c;它应该既能体现你的专业能力&#xff0c;又能满足实际应用需求&#xff…

作者头像 李华
网站建设 2026/6/10 12:22:41

第五阶段 第36部分听力

Part 1: 开场 I’m Vikram and on this show, people call me for help with their home. 我是 Vikram&#xff0c;在这个节目里&#xff0c;人们打电话向我求助家居问题。 But first, here are some words you need to know. 但首先&#xff0c;这里有一些你需要知道的词。 …

作者头像 李华
网站建设 2026/6/6 1:42:27

产品经理案例分析(三):从形态选择到页面落地,一篇讲透

做电商产品&#xff0c;用户端是直面用户的 “第一道门面”&#xff0c;也是转化成交的核心战场。很多产品新手容易陷入 “功能堆料” 的误区&#xff0c;却忘了用户端设计的本质是 “匹配需求 降低成本”。今天就从实际设计逻辑出发&#xff0c;拆解电商用户端的核心要点&…

作者头像 李华
网站建设 2026/6/2 4:31:50

Vue—— Vue3 + Node.js 后台管理系统 之 【响应式数据处理】

背景问题 在Vue3应用中&#xff0c;响应式数据的处理是核心&#xff0c;但不当的处理会导致性能问题和意外行为。 方案思考 如何正确使用响应式API如何处理深层响应式对象如何避免不必要的响应式转换 具体实现 响应式数据优化&#xff1a; // utils/reactivity.ts - 响应…

作者头像 李华
网站建设 2026/6/10 12:34:46

基于Spring Boot的在线招聘平台设计与实现

&#x1f345; 作者主页&#xff1a;Selina .a &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。 主要内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据…

作者头像 李华