lazarus开发应用提供http接口

2023-11-13

lazarus开发应用提供http接口,简单试用了一下fphttpapp,发现非常易用,直接支持中文内容

引用3个核心单元

fphttpapp, httpdefs, httproute

启用端口定义路由

procedure route1(aReq: TRequest; aResp: TResponse);
begin
  aResp.Content:='<html><head><title>欢迎测试</title></head><body><h1>Route 1 The Default</h1>欢迎测试</body></html>';
end;

procedure route2(aReq: TRequest; aResp: TResponse);
begin
  aResp.Content:='<html><body><h1>lazarus提供http接口</h1></body></html>';
end;

procedure TForm1.StaticText1Click(Sender: TObject);
begin
HTTPRouter.RegisterRoute('', @route1);
   HTTPRouter.RegisterRoute('/', @route1);
  HTTPRouter.RegisterRoute('/2', @route2);
  fphttpapp.Application.Port := 8088;
  fphttpapp.Application.Threaded := true;
  fphttpapp.Application.Initialize;
//fphttpapp.Application.Run;
 // Run the server in a thread.
  TWebServerThread.Create(false); // false means the server thread runs immediately

end;

如果是无界面应用可以直接启动,这里是有界面应用,所以再写一个线程启动监听更加好用

下面是定以线程和线程启动http服务

type
     TWebServerThread = class(TThread)
    protected
      procedure Execute; override;
    public
      constructor Create(CreateSuspended: boolean);
  end;
  { TForm1 }
......
implementation

{$R *.lfm}

constructor TWebServerThread.Create(CreateSuspended: boolean);
begin
  inherited Create(CreateSuspended);
  FreeOnTerminate := true;
end;

procedure TWebServerThread.Execute;
begin
       writeln(' fphttpapp.Application.Run');
  fphttpapp.Application.Run;
end;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lazarus开发应用提供http接口 的相关文章

  • asp.net core http 如果没有内容类型标头,则删除 `FromBody` 忽略

    我在 http 中使用 bodyDELETE要求 我知道目前删除主体是非标准的 但是允许的 使用时出现问题HttpClient它不允许删除请求的正文 我知道我可以使用SendAsync 但我宁愿让我的 API 更加灵活 我希望这个机构是可选
  • Go中如何自定义http.Client或http.Transport超时重试?

    我想实现一个自定义http Transport对于标准http Client 如果客户端超时 它将自动重试 附 由于某种原因 习俗http Transport is a 一定有 我已经查过了hashcorp go retryablehttp
  • 通过 HTTPS 加载页面但请求不安全的 XMLHttpRequest 端点

    我有一个页面 上面有一些 D3 javascript 该页面位于 HTTPS 网站内 但证书是自签名的 当我加载页面时 我的 D3 可视化效果不显示 并且出现错误 混合内容 页面位于 https integration jsite com
  • 按照约定应返回哪些 REST PUT/POST/DELETE 调用?

    根据 REST 意识形态 PUT POST DELETE 请求的响应正文中应该包含什么 返回码呢 是HTTP OK enough 如果有的话 这种约定的原因是什么 我发现了一篇描述 POST PUT 差异的好文章 发布与放置 http ww
  • MPMoviePlayerController 播放 YouTube 视频

    如何在 iPhone 上的 MPMoviePlayerController 中播放 YouTube 视频 同时避免进入全屏模式 这个问题已经在这里提出 MPMoviePlayerController 正在播放 YouTube 视频吗 htt
  • 在 iOS 中,http 204 响应返回空白页面,有办法阻止这种情况吗?

    以前可能有人问过这个问题 但我似乎找不到解决方案 所以如果是这种情况 我深表歉意 我正在开发一个使用express的简单节点应用程序 其中一个帖子路由返回 http 204 并发送它 下面是我的代码 router post id funct
  • .net core 2.0代理请求总是导致http 407(需要代理身份验证)

    我正在尝试通过 net core 2 0 Web 应用程序中的 WebProxy 发出 HTTP 请求 我得到的代码在 net框架中运行良好 所以我知道 相信 这不是环境问题 我也尝试使用两者来发出请求HttpWebRequest and
  • 防止 ASP.Net 中的表单重新提交(不重定向到我自己)

    我有一个带有表单元素的母版页
  • 在读取正文之前拒绝 HTTP 请求

    我正在开发一个网站 用户需要上传一些非常大的文件 该网站是用 PHP 编写的 在某些情况下 我想根据标头拒绝文件 理想情况下 我想在收到标头后立即拒绝请求 而不读取正文 如果标头足以表明该文件应被拒绝 则没有理由读取 200M 的文件 此外
  • ASP.NET Core URL 重写

    我正在尝试将我的网站从 www 重定向到非 www 规则以及 http 到 https https example com https example com 在中间件中 我曾经在 web config 中进行这些重定向更改 例如
  • AJAX 发送数据到 Node.js 服务器

    我尝试使用 AJAX 将数据发送到 Node js 服务器 但不断遇到同样的问题 即接收问题 这是客户端 JavaScript AJAX 代码 var objects function return new XMLHttpRequest f
  • 404 标头 - HTTP 1.0 还是 1.1?

    为什么我能找到的几乎每个例子 包括这个问题 https stackoverflow com questions 437256 sending a 404 error in php大约一年前 说 404 标头应该是HTTP 1 0 404 N
  • 如何转义角度 HttpParams?

    在 Angular 服务中 我使用 HttpParams 将字符串发送到服务 get phone string Observable
  • JS 库请求的常见 HTTP 标头是什么?

    使用JavaScript 框架原型 http www prototypejs org 我注意到 Ajax 请求通过一个名为X Requested With 其他 JavaScript 库 如 jQuery dojo 和 YUI 是否会向其
  • Django HTTPS 和 HTTP 会话

    我使用 Django 1 1 1 和 ssl 重定向中间件 通过 HTTPS 创建的会话数据 身份验证等 在站点的 HTTP 部分中不可用 无需将整个站点设置为 HTTPS 即可使其可用的最佳方法是什么 这是设计使然 您无法轻易更改 当通过
  • WCF WebHttp 混合身份验证(基本和匿名)

    所有这些都与 WebHttp 绑定有关 托管在自定义服务主机中 IIS 目前不是一个选项 我已经实现了自定义 UserNamePasswordValidator 和自定义 IAuthorizationPolicy 当我将端点的绑定配置为使用
  • 用 C++ 解析 HTTP 标头

    我正在使用curl 与服务器通信 当我发出数据请求时 我收到 HTTP 标头 后跟由边界分隔的 jpeg 数据 如下所示 我需要解析出 边界字符串 内容长度 我已将传入数据复制到 char 数组 如下所示 static size t OnR
  • 如何设置响应文件名而不强制“另存为”对话框

    我在某些响应中返回一个流 设置适当的content type标头 我正在寻找的行为是这样的 如果浏览器能够呈现给定内容类型的内容 那么它应该将其显示在浏览器窗口中 如果浏览器不知道如何呈现内容 那么它应该显示 另存为 对话框 其中文件名应该
  • 使用 JSON 的 Pentaho HTTP Post

    我是 Pentaho 的新手 我正在尝试执行以下工作流程 从数据库中读取一堆行 做一些转换 将它们以 JSON 格式发布到 REST Web 服务 我已经使用输入步骤和 Json 输出步骤解决了前两个问题 但是 我在执行最后一步时遇到两个问
  • 以 REST 方式更新整个资源集合

    我有一个资源列表的 REST URI 例如 http foo com group users 这些用户中的每一个都有一个序列号 我想公开一种方法来为集合中的所有用户重新编号这些值 并使访问该列表的每个人都可以使用此更改 由于这是对整个集合的

随机推荐

  • Springboot结合线程池的使用

    1 使用配置文件配置线程的参数 配置文件 thread pool core size 100 max size 100 keep alive seconds 60 queue capacity 1 配置类 Component Configu
  • 【华为OD机试真题c++/java/python】农场施肥【2023 Q1A卷

    2023华为OD机试 刷题指南 点这里 华为OD机试 2023真题考点分类 点这里 题目描述 某农场主管理了一大片果园 fields i 表示不同果林的面积 单位 m 2 现在要为所有的果林施肥且必须在 n 天之内完成 否则影响收成 小布是
  • 数据库SQL千万级数据规模处理概要

    我在前年遇到过过亿条的数据 以至于一个处理过程要几个小时的 后面慢慢优化 查找一些经验文章 才学到了一些基本方法 综合叙之 与君探讨之 1 数据太多 放在一个表肯定不行 比如月周期表 一个月1000万 一年就1 2亿 如此累计下去肯定不行的
  • Android Studio Button 美化

    改变按钮Button控件的边角 填充颜色 边框颜色 步骤 在 res gt drawable 中新建一个 btn all shape xml
  • Unity——新输入系统Input System

    1 安装 安装 直接到包管理器Window gt Package Manager安装即可 安装后提示需要重启 重启后即可使用 注意 在Project Settings中的Player设置里将Active Input Handling设置为I
  • 计算鬼成像学习笔记一:简介

    这里写目录标题 1 何为鬼成像 1 1 传统光学成像 所见即所得 1 2 鬼成像 又称关联成像 1 2 1 桶探测器 1 2 2 CCD 1 2 3 空间分辨率 1 2 4 光源 1 2 5 纠缠光子 1 2 6 赝热光源 1 2 7 散斑
  • springboot maven 子模块没有java文件夹 或 pom.xml灰色

    1 pom xml灰色 2 子模块 modules 没有添加到父模块 报错
  • 大学【微机原理与接口技术】参考资料、该视频笔记

    该百度网盘链接 是我学习 微机原理与接口技术 的参考资料 感觉讲的不错 有需要评论区下发qq邮箱 我看到会发给你 该视频笔记参考我的博客 https blog csdn net weixin 42214698 category 115770
  • PPPoE原理与配置方法

    一 PPPoE原理 数字用户线路DSL Digital Subscriber Line 是以电话线为传输介质的传输技术 人们通常把所有的DSL技术统称为xDSL x代表不同种类的数字用户线路技术 目前比较流行的宽带接入方式为ADSL ADS
  • 从零开始的webpack生活-0x014:CustomLoader自定义loader

    0x001 概述 上一章我们讲了eslint loader的配置 常用类型的常用loader已经都讲完了 大体上其他的都大同小异 需要去各大loader的官方查阅用户手册就可以了 接下来将loader的本质和自定义loader 0x002
  • 30行Python代码实现3D数据可视化!非常惊艳!

    回顾 2D 作图 用赛贝尔曲线作 2d 图 此图是用基于 Matplotlib 的 Path 通过赛贝尔曲线实现的 有对赛贝尔曲线感兴趣的朋友们可以深入了解一下 在 matplotlib 中 figure 为画布 axes 为绘图区 fig
  • 教你用Navicat生成E-R图

    最近在弄毕业论文 导师让我在论文中插一些图 其中设计到之前数据库中表与表的关系图 开始本来想手动画一个 然后突然想到 是不是Navicat会自带这种功能呢 仔细一看 果然有 于是乎开始倒腾一番 在此记录一下 也方便需要的人 1 打开navi
  • vue3开发技巧包括全局注册自定义指令,全局注册组件

    文章目录 一 全局注册自定义指令 1 钩子函数 2 动态指令参数 二 全局注册组件 三 v for循环中绑定不同点击事件 四 v for循环中绑定不同class属性 一 全局注册自定义指令 vue3全局定义自定义指令 与vue2版本差别不大
  • 初学前端,学习路线图必不可少,更有【95页】初级前端模块笔记!

    前言 在初学前端的时候 我们总会遇到一些问题 我们可以在网上看到很多关于前端的这些问题 你们都是怎么学web前端的 零基础 怎么自学好前端 前端需要学多久 都学哪些知识 想成为一名合格的前端工程师 需要掌握哪些技能 下面是给初学前端的小伙伴
  • Java动态性之反射机制

    一 动态语言 程序运行时 可以改变程序结构或变量类型 典型的语言 python ruby javascript等 function test var s var a 3 var b 5 alert a b eval s c c java不是
  • python中如何查看statsmodels相关知识

    运行arima的一个相关程序时 总是打印一些我不需要的数据 如下 RUNNING THE L BFGS B CODE Machine precision 2 220E 16 N 1 M 12 This problem is unconstr
  • 2023新版Java学习路线视频讲解,程序员自学必备指南

    深知大家自学Java的苦 苦于没有系统的知识体系 不知道该学什么 看哪个视频比较好 因此 老杜精心录制了这版超实用且全面的Java学习路线 目的在于帮助自学Java的初学者减少迷茫和时间浪费 制定出一份系统的学习计划和路线 让你学Java更
  • comsol光学仿真01

    与RF模块比较 1 RF模块适合模拟与波长大小相近的域 2 最大网格大院大小必须是波长的一部分 大约在波长的1 6 缺点 计算过慢 与射线光学比较 1 射线 几何 光学适合模拟远大于波长的结构 2 能够有效追踪经过复杂几何区域和材料的射线
  • arm汇编指令详细整理及实例详解

    目录 一 简介 二 ARM 汇编指令说明 2 1 32位数据操作指令 2 2 32位存储器数据传送指令 2 3 32位转移指令 2 4 其它32位指令 三 实例讲解 3 1 MRS 3 2 MSR 3 3 PRIMASK 3 4 FAULT
  • lazarus开发应用提供http接口

    lazarus开发应用提供http接口 简单试用了一下fphttpapp 发现非常易用 直接支持中文内容 引用3个核心单元 fphttpapp httpdefs httproute 启用端口定义路由 procedure route1 aRe