news 2026/5/5 23:52:20

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/5/1 3:15:32

Linux命令-logwatch (自动分析和汇总系统日志)

&#x1f9ed;说明 Logwatch 是一款实用的日志分析工具&#xff0c;能自动分析和汇总系统日志&#xff0c;生成易于阅读的报告。 &#x1f4e6; 安装与基本配置 首先&#xff0c;确保系统已经安装了 Logwatch。对于大多数主流 Linux 发行版&#xff0c;都可以通过包管理器直…

作者头像 李华
网站建设 2026/5/4 13:30:12

1988-2025年上市公司流程创新占比数据

数据简介 企业流程创新占比&#xff08;Share of Process Innovations&#xff09;是基于专利权利要求文本分析构建的核心指标&#xff0c;旨在衡量企业研发活动中用于改进生产方法、降低生产成本的投入比例。在经济学逻辑中&#xff0c;创新被划分为“产品创新”与“流程创新…

作者头像 李华
网站建设 2026/5/1 10:55:28

1986-2025年中国各高校专利数据

数据简介 高校专利是高等学校&#xff08;包括大学、学院等各类高等教育机构&#xff09;的师生、科研人员等在科研活动、教学实践、技术创新等过程中&#xff0c;通过智力劳动创造出的具有新颖性、创造性和实用性的发明创造&#xff0c;并依据专利相关法律法规向国家专利行政…

作者头像 李华
网站建设 2026/5/1 9:22:12

杰理之升级方法有【篇】

直接将UFW升级文件放在TF卡中&#xff0c;TF卡插入到测试盒中&#xff0c;测试盒会自动搜索到设备进行升级&#xff0c;&#xff08;经典蓝牙样机升级类似

作者头像 李华
网站建设 2026/4/30 11:32:23

Python性能优化:深入原理与高阶实践

Python性能优化&#xff1a;深入原理与高阶实践 引言&#xff1a;超越表面优化的思考 在Python开发领域&#xff0c;"性能优化"常被简化为使用列表推导式、选择合适的数据结构等基础技巧。然而&#xff0c;真正的性能优化需要深入理解CPython实现原理、内存管理机制…

作者头像 李华