news 2026/4/16 6:02:29

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/3/14 2:47:41

如何将CAD对象指定到机械图层?

在机械设计绘图流程中&#xff0c;修改历史图纸或协同作业时&#xff0c;图形对象常因未按预设的机械图层分类放置&#xff0c;导致图纸管理混乱、打印效果不佳&#xff0c;严重时甚至影响后续的数控加工与生产。 针对这一普遍痛点&#xff0c;CAD机械版内置了高效的层变换工具…

作者头像 李华
网站建设 2026/4/16 0:25:35

基于java的社区物资购买系统(11877)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/4/13 9:25:05

<span class=“js_title_inner“>网络流量监控神器 , Wireshark看着太累了</span>

如果你想知道电脑在后台偷偷连哪些服务器,但Wireshark那界面看着头疼。命令行工具吧,又不够直观。Sniffnet这个项目就是专门解决这个痛点的。GitHub上32.2K星了,Rust写的跨平台网络流量监控工具,界面漂亮得不像开源软件,功能还特别全。实时图表、地理位置、域名解析、自定义通知…

作者头像 李华
网站建设 2026/4/15 23:04:02

<span class=“js_title_inner“>[今日战况]创新高了!黄金有色吃大肉!ETF三因子轮动实盘跟踪!股票量化分析工具QTYX-V3.3.6</span>

前言 我们的股票量化系统QTYX在实战中不断迭代升级!!!分享QTYX系统目的是提供给大家一个搭建量化系统的模版&#xff0c;帮助大家搭建属于自己的系统。因此我们提供源码&#xff0c;可以根据自己的风格二次开发。 关于QTYX的使用攻略可以查看链接&#xff1a;QTYX使用攻略QTYX一…

作者头像 李华
网站建设 2026/3/26 9:05:38

树莓派5+ubuntu24.04+openclaw使用记录

1 安装openclaw 参考连接&#xff08;一键安装openclaw&#xff09;&#xff1a; 官网 https://openclaw.ai/ 菜鸟 OpenClaw (Clawdbot) 教程 | 菜鸟教程 中文文档 https://holtchas.github.io/openclaw-docs-zh/sta…

作者头像 李华