news 2026/4/23 9:36:15

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/4/17 17:48:13

基于Java的影视创作论坛的设计与实现(11880)

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

作者头像 李华
网站建设 2026/4/22 13:01:18

uni-app 之 设置导航

uni-app 提供了一系列 API 来动态设置页面导航栏的样式和状态&#xff0c;帮助开发者创建更丰富的用户界面体验。 1. uni.setNavigationBarTitle(OBJECT) 动态设置当前页面的标题 参数说明 属性类型必填说明titlestring是页面标题successfunction否接口调用成功的回调函数f…

作者头像 李华
网站建设 2026/4/17 3:06:22

光刻胶用屏蔽剂

一、光刻胶对光屏蔽剂性能的具体详细要求光屏蔽剂的核心作用是控制光在光刻胶膜中的传播行为&#xff0c;其主要性能要求可归纳为以下几点&#xff1a;精确的光学特性&#xff08;核心要求&#xff09;在曝光波长下具有高吸收系数&#xff08;α&#xff09;&#xff1a;这是最…

作者头像 李华