学习unigui【28】UniGUI接收POST/GET
小儿科问题,直接上流程代码:


1 procedure TUniServerModule.UniGUIServerModuleHTTPCommand(
2 ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo;
3 var Handled: Boolean);
4 var
5 JSONData: TBytes;
6 JSONString: string;
7 begin
8 // Result := False;
9
10 // 判断路径是否是 /queryData
11 if ARequestInfo.URI = '/queryData' then
12 begin
13 // 处理GET请求
14 if ARequestInfo.Command = 'GET' then
15 begin
16 AResponseInfo.ContentText := '成功接收GET请求,参数为:' + ARequestInfo.Params.Text;
17 AResponseInfo.ResponseNo := 200; // HTTP 200 OK
18 Handled := True;
19 // Result := True;
20 end
21 // 处理POST请求
22 else if ARequestInfo.Command = 'POST' then
23 begin
24
25 // 确保 PostStream 有数据
26 if Assigned(ARequestInfo.PostStream) then
27 begin
28 // 将PostStream转换为字节数组
29 SetLength(JSONData, ARequestInfo.PostStream.Size);
30 ARequestInfo.PostStream.Position := 0; // 重置流位置
31 ARequestInfo.PostStream.ReadBuffer(JSONData[0], ARequestInfo.PostStream.Size);
32
33 // 使用 UTF-8 将字节数组转换为字符串
34 JSONString := TEncoding.UTF8.GetString(JSONData);
35
36 AResponseInfo.ContentText := '成功接收POST请求,JSON参数为:' + JSONString;
37 AResponseInfo.ResponseNo := 200; // HTTP 200 OK
38 end
39 else
40 begin
41 AResponseInfo.ContentText := 'POST请求没有包含任何数据';
42 AResponseInfo.ResponseNo := 400; // HTTP 400 Bad Request
43 end;
44
45
46
47 Handled := True;
48 end
49 else
50 begin
51 AResponseInfo.ContentText := '不支持的请求方法';
52 AResponseInfo.ResponseNo := 405; // HTTP 405 Method Not Allowed
53 Handled := True;
54 // Result := True;
55 end;
56 end
57 else
58 begin
59 // AResponseInfo.ContentText := '404 - 未找到路径';
60 // AResponseInfo.ResponseNo := 404; // HTTP 404 Not Found
61 end;
62 end;
结果:

学习unigui【28】UniGUI接收POST/GET的更多相关文章
- Python的入门学习Day 28~30——form”夜曲编程“
Day 28 in Day 29 time: 2021.8.26. 时间模糊了界限,虽我日渐走远.转眼而过的二十多天,既留下了夏天在沙滩上的足迹,同时也为黄金色的秋日铺上留白的画卷.键盘敲时,熟悉 ...
- iOS阶段学习第28天笔记(UIView的介绍)
iOS学习(UI)知识点整理 一.关于UIVIew 的介绍 1)概念:UIView 是用于装载并展示各类控件的大容器,是iOS中所有UI控件的基类 2)UIView 初始化实例代码 UIView * ...
- struts2视频学习笔记 28(OGNL表达式)
课时28 OGNL表达式 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts 2框架使用OGNL作为默认的表达式语 ...
- Android学习系列(28)--App集成支付宝[已过期]
手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能.人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描 ...
- Linux学习笔记28——消息队列
一 关于消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法,而且,每个数据块都被认为含有一个类型,接收进程可以独立地接受含有不同类型值的数据块.可以通过发送消息来几乎完全避免命名管 ...
- 《第一行代码》学习笔记28-内容提供器Content Provider(1)
1.内容提供器:用于在不同的应用程序之间实现数据共享的功能,提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问 数据的安全性.使用内容提供器是Android实现跨程序共享数据 ...
- Kali学习笔记28:Burpsuite(下)
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 扫描: 上一篇介绍到了爬网,那么到这里我以及爬取了一个 ...
- Android学习之发送及接收广播
1.使用标准广播 1.1 定义广播接收器 public class MyBroadcastReceiver extends BroadcastReceiver { @Override public v ...
- scala学习手记28 - Execute Around模式
我们访问资源需要关注对资源的锁定.对资源的申请和释放,还有考虑可能遇到的各种异常.这些事项本身与代码的逻辑操作无关,但我们不能遗漏.也就是说进入方法时获取资源,退出方法时释放资源.这种处理就进入了Ex ...
- C语言实例解析精粹学习笔记——28
实例28:从键盘读入实数 题目要求: 编制一个从键盘读入实数的函数readreal(double *rp).函数将读入的实数字符列转换成实数后,利用指针参数rp,将实数存于指针所指向的变量*rp. 思 ...
随机推荐
- 题解:AT_abc385_f [ABC385F] Visible Buildings
小学二年级就会的基本一次函数知识. 抽象一下题意: 求 \(n\) 个点 \((X_i, H_i)\) 中任意两个点组成的直线的截距的最大值(不小于 \(0\),\(X_i\) 递增). 先说结论:先 ...
- cpa-审计
1.审计概述 2.审计计划 3.审计证据 4.审计抽样方法 5.信息技术对审计的影响 6.审计工作底稿 7.风险评估 8.风险应对 9.销售与收款循环的审计 10.采购与付款循环的审计 11.生产与存 ...
- w3cschool-OpenResty 最佳实践
https://www.w3cschool.cn/openresty1/ OpenResty 简介 OpenResty(也称为 ngx_openresty)是一个全功能的 Web 应用服务器.它打包了 ...
- SM9-密钥交换
算法过程 代码实现 ///************************************************************************ // File name: ...
- System类、Math类、BigInteger与BigDecimal的使用
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成 ...
- 《SpringBoot》史上最全SpringBoot相关注解介绍
@SpringBootApplication @SpringBootApplication看作是 @Configuration.@EnableAutoConfiguration.@ComponentS ...
- openbox每日开机自动切换网络壁纸
目的 利用bing的每日一图, 每天切换壁纸 开干 联网后下载图片 利用networkmanage启动后执行脚本 netafter.sh 文件地址: /etc/NetworkManager/dispa ...
- MapStruct入门使用
MapStruct入门使用案例 以下是常用的使用举例,按照需求改动即可 @Data public class UserDO{ private int age; private String name; ...
- 一个 .NET 开源、免费、功能强大的Windows应用卸载神器
前言 今天大姚给大家分享一个基于 .NET 开源(Apache License).免费.功能强大的Windows应用卸载神器:Bulk Crap Uninstaller. 项目介绍 Bulk Crap ...
- 魔乐社区体验:探索Llama 3.1模型微调之旅
在2024年的AI领域,Meta发布的Llama 3.1模型无疑成为了研究者和开发者的新宠.我有幸通过魔乐社区提供的资源,对这一模型进行了深入的学习和实践.在这个过程中,魔乐社区的资源和支持给我留下了 ...