lazarus调用http接口解析json(迎接云计算适应微服务)

2023-11-01

lazarus
跨平台free pascal语言ide工具,社区 http://www.fpccn.com/ 下载 ftp://freepascal.dfmk.hu/pub/lazarus/

号称一次编码,到处编译,window linux macos 等各种平台都可用。borland的delphi也是pascal开发工具但是收费,开源的lazarus免费用用挺好

云计算时代,很多微服务都是提供http接口给出json格式的字符串,今天简单用lazarus检查一台服务器上一个微服务是否在运行

首先搜索delphi代码如下:

procedure TForm1.testBtnClick(Sender: TObject);
var
  ss:  TStringStream;
  HttpClient:TIdHttp;
  ParamList: TStringList;
  jsObj: ISuperObject;
begin
//b := TStringStream.Create('',65001);  //65001是UTF-8    老版本delphi还不认识utf8??
    SS := TStringStream.Create('');
    HttpClient := TIdHttp.Create(nil);
    HttpClient.Request.ContentType := 'application/json';
    HttpClient.ReadTimeout := 5000;
    HttpClient.HandleRedirects := True;//允许头转向
    ParamList := TStringList.Create;
    try
      //ParamList.Add('LoginName=xx');
      //若要进行url中文编解码改为 ParamList.Add('MsgContext=' + HTTPEncode(UTF8Encode(memoMsgContext.Text)));
      //ParamList.Add('SendSim=' + edtSendSim.Text);
      //HttpClient.Post('http://10.100.103.236:8080/management/health', ParamList, SS);
      HttpClient.Get(Edit1.Text, SS);
      jsObj:=SO(SS.DataString);
      Edit1.Text :=jsObj.s['status'] ;
    finally
      SS.Free;
      HttpClient.Free;
      ParamList.Free;
    end;
end;

TIdHttp是indy包里的组件,delphi自带的有,ISuperObject是为了解析json字符串,网上下载到pas源码,放在工程里就好了

然后把代码复制到lazarus,竟然没有indy包,SuperObject编译不通过,网上下载indy只折腾出来32位版本indy10.2.0.3可用

发现lazarus里已经有json的的解析包 fpjson和jsonparser,继续搜索找到lazarus自带调用http的包fphttpclient,这次就完美了

var
  jData: TJSONData;
  jObject: TJSONObject;
  s: string;
begin
  try
    s := TFPCustomHTTPClient.SimpleGet(Edit1.Text);
    Memo1.Append(s);
    jData := GetJSON(S);
    jObject := TJSONObject(jData);
    s := jObject.Get('status', s);
    Memo1.Append(s);
  except
    on E: EHttpClient do
      Memo1.Append(e.message)
  end;
end;

附下参考页面:https://wiki.lazarus.freepascal.org/fphttpclient

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

lazarus调用http接口解析json(迎接云计算适应微服务) 的相关文章

随机推荐

  • python 崇天_python 从入门到放弃-----认识python的过程

    因为初来匝道 这样子写不知道会不会有问题 这里我先写下来 后期如果有问题 再修改 这里只记录一个小渣渣的学习过程和总结 中途学习爬虫也断断续续 还在继续努力中 但也总结自己的一些个人经验 1 零基础学习爬虫 还是要学python和HTML的
  • 2023年第二届服务机器人国际会议(ICoSR 2023)

    会议简介 Brief Introduction 2023年第二届服务机器人国际会议 ICoSR 2023 会议时间 2023年7月21日 23日 召开地点 中国 上海 大会官网 www iwosr org ICoSR 2023将围绕 服务机
  • Clang 新手教程来啦!

    长话短说 这篇新手教程会让你弄清楚什么是clang clang AST clang plugins 和clang tools 等等 让你大概知道clang 可以解决什么问题 而且小白也是可以用clang libraries 来开发工具的 0
  • 微信小程序前端引入weui组件库

    正在开发的微信小程序 想使用weui组件库 步骤如下 基础 1 小程序开发工具 1 06 22 1 初始化 以管理员身份运行命令行窗口 cmd 或使用VSCode进入终端 在cmd中进入项目的根目录 然后输入以下命令 npm init 后面
  • 2020新版去水印小程序搭建详细教程

    可以设置小程序跳转 引流也不错 支持小程序后台流量主激励视频广告 用户下载一次观看一次视频广告 收入非常可观 支持小程序后台流量主banner广告 支持全网短视频解析 苹果安卓通用 支持后台无限生成卡密 支持自定义文字广告 支持图片广告 支
  • amazon-kinesis-video-streams-webrtc-sdk-c 移植到linux开发板

    大部分参考这位大神的资料 分析依赖关系 通过分析Cmakelist txt得出了一些依赖关系 libkvsWebrtcClient so 依赖项如下 libkvspicUtils a libkvspicState a libssl so l
  • 如何写好一份PPT

    写工作汇报PPT 核心是 要让领导一眼看懂你做的汇报 PPT 本着这个原则 这里老秦提供4种解决方案 PowerPoint的核心作用是什么 Power your Point PPT 的第一目的是沟通和传达 它是架在讲者和听者之间的桥梁 辅助
  • 数字IC-序列检测-fsm

    序列检测简介及代码实现 序列检测器包含两种 一种是移位寄存器 另一种时状态机 还有重复序列和不重复序列检测 重点关注和了解如何用状态机去实现 序列检测器就是将指定的序列从数字码流 中检测出来 收到输出1 否则输出0 移位寄存器解法 重复序列
  • 教你如何安装SCSI硬盘 安装、启动、设置篇

    SCSI硬盘一向认为是昂贵且高不可攀的存储设备 不仅本身价位高于IDE硬盘很多 而且必须另外选择SCSI接口卡 因此在这样的条件下 一般计算机用户便倾向于使用IDE接口的硬盘 IDE硬盘虽然具有低价的优势 但始终敌不过SCSI硬盘的强悍速度
  • python算法中的深度学习算法之强化学习(详解)

    目录 学习目标 学习内容 强化学习 环境建模 Markov决策过程
  • C++11 -- 入门基础知识

    文章目录 C 11简介 列表初始化 std initializer list 变量类型推导 nullptr 范围for循环 STL中的一些变化 C 11简介 在2003年C 标准委员会曾经提交了一份技术勘误表 简称TC1 使得C 03这个名
  • uniapp+vue3+vite+ts+uviewPlus搭建项目

    创建项目架构 首先使用官方提供的脚手架创建一个项目 这里我创建的 vue3 vite ts 的项目 npx degit dcloudio uni preset vue vite ts project name 如命令行创建失败 请直接访问
  • python selenium启动常用

    加载超时设置 browser set page load timeout 5 二进制转16进制 a 00000000 hex int a 2 from selenium import webdriver import time from s
  • Python学习-----流程控制3.0(习题实操)

    目录 前言 1 求和 2 求阶乘 3 输出100以内的奇数 4 打印九九乘法表 5 斐波那契数列 6 打印空心矩形 7 打印三角形 8 求两个数字之间的最大公约数 9 质数问题 10 进制数转换 11 字符统计 12 字符匹配问题 13 求
  • 终于有人把数据指标体系讲明白了

    来源 数据学堂 数据岗的核心职能 在于产出数据资产 提升信息的价值密度 而指标体系就是一个组织最为重要的数据资产 那么 1 为什么指标体系这么重要 2 什么是指标体系 3 指标体系的衡量标准是什么 4 如何去搭建一套好的指标体系 只要弄清楚
  • C++ primer 第十一章习题

    chapter11 关联容器 文章目录 chapter11 关联容器 练习 11 1 节练习 练习11 1 练习11 2 练习11 3 练习11 4 11 2 1 节练习 练习11 5 练习11 6 练习11 7 练习11 8 11 2 2
  • 脏牛提权(cve-2016-5159)

    漏洞范围 大于2 6 22版本 2007年发行 到2016年10月18日修复 危害 低权限的用户可利用这一漏洞在本地进行提权 原理 linux内核的子系统在处理写入时复制至产生了竞争条件 恶意用户可利用此漏洞来获取高权限 对只读内存映射进行
  • 如何快速选择开源许可证License,看这三个就够了

    开源License很多 如果你不想在License耗费太多精力 那么推荐你重点了解这三种 GPL Apache License及MIT 这三种在开源License中很具代表性 使用广泛 且简洁易理解 同时 这三种license是经过OSI
  • MySQL数据库学习

    目录 从管理员cmd页面打开数据库 创建一个用户 数据库的基本操作 数据完整性 完整性约束管理 表的基本操作 判断关键字 聚合函数 多表连接查询 嵌套查询 联合查询 事务 锁 索引 视图 存储过程 函数 与存储过程类似 光标 触发器 JAV
  • lazarus调用http接口解析json(迎接云计算适应微服务)

    lazarus 跨平台free pascal语言ide工具 社区 http www fpccn com 下载 ftp freepascal dfmk hu pub lazarus 号称一次编码 到处编译 window linux macos