钉钉氚云到金碟之三 DELPHI从氚云下载数据
DELPHI7下实在难以测试出来,最后在DELPHI XE10 下经过两天测试出来了,能正常下载。
特别注意的是标红处的一些登录参数,要从钉钉氚云专业版系统处获得,然后替换红色处的代号,才能登录下载.先将测试出来的代码上传,逐步完善说明。
unit TESTINDY;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdIOHandler, Web.UTF8ContentParser,
IdMultipartFormData, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL,
//
IdGlobalProtocols, util_uft8,
//
IdBaseComponent, System.JSON, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, Vcl.StdCtrls;
const
sContentTransferPlaceHolder = 'Content-Transfer-Encoding: %s';
sContentTransferQuotedPrintable = 'quoted-printable';
sContentTransferBinary = 'binary';
type
TForm1 = class(TForm)
Button1: TButton;
IdHTTP1: TIdHTTP;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
Memo1: TMemo;
Button2: TButton;
procedure Button1Click(Sender: TObject);
function UnicodeToChinese(inputstr: string): string;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Url: string;
streanResponse: TStringStream;
response: string;
ResponseStr: string;
SSLopen: tIdSSLIOHandlerSocketOpenSSL;
StreamRequest: TStringStream;
jsonData, tempstr, tempstr2, sjc: string;
vres, STR: string;
requeststr: UTF8String;
AJSON: TJSONObject;
bytes: SYSTEM.TArray<SYSTEM.BYTE>;
begin
try
streanResponse := TStringStream.Create('',tencoding.utf8);
//要注意返回值是UTF8格式的流
StreamRequest := TStringStream.Create('');
SSLopen := tIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP1);
IdHTTP1.IOHandler := SSLopen;
IdHTTP1.ReadTimeout := 50000;
IdHTTP1.Request.ContentType := 'application/json';
IdHTTP1.Request.CustomHeaders.Values['EngineCode'] := 'EngineCode';
IdHTTP1.Request.CustomHeaders.Values['EngineSecret'] :=
'EngineSecret';
STR := ' { ' + ' "ActionName":"LoadBizObjects",' +
' "SchemaCode":"SchemaCode", ' +
' "Filter":"{\"FromRowNum\": 0,\"RequireCount\": false,\"ReturnItems\": [], \"SortByCollection\": [],\"ToRowNum\": 3, \"Matcher\": { \"Type\": \"And\", \"Matchers\": []}}"' +
' }';
Url := 'https://www.h3yun.com/OpenApi/Invoke';
StreamRequest := TStringStream.Create;
AJSON := TJSONObject.Create;
AJSON := TJSONObject.ParseJSONValue(Trim(STR)) as TJSONObject;
requeststr := AJSON.ToString;
bytes := TEncoding.UTF8.GetBytes(requeststr);
IdHTTP1.Request.ContentLength := Length(bytes);
StreamRequest.Write(bytes, IdHTTP1.Request.ContentLength);
//以UTF-8编码写入相应的JSON字符流。
IdHTTP1.Post('https://www.h3yun.com/OpenApi/Invoke', StreamRequest, streanResponse); //
vres := streanResponse.DataString; // Post返回值Utf8码
Memo1.Text :=UnicodeToChinese(vres); // 显示反馈信息Utf8To
finally
// IdHTTP1.Free;
StreamRequest.Free;
streanResponse.Free;
end;
end;
function TForm1.UnicodeToChinese(inputstr: string): string;
var
i: Integer;
index: Integer;
temp, top, last: string;
begin
index := 1;
while index >= 0 do
begin
index := Pos('U', inputstr) - 1;
if index < 0 then
begin
last := inputstr;
Result := Result + last;
Exit;
end;
top := Copy(inputstr, 1, index); // 取出 编码字符前的 非 unic 编码的字符,如数字
temp := Copy(inputstr, index + 1, 6); // 取出编码,包括 u,如u4e3f
Delete(temp, 1, 2);
Delete(inputstr, 1, index + 6);
Result := Result + top + WideChar(StrToInt('$' + temp));
end;
end;
end.
参考帮助如下
钉钉氚云到金碟之三 DELPHI从氚云下载数据相关推荐
- 钉钉氚云到金碟之二:测试凭证写入金碟KIS(DELPHI)
DELPHI在使用其他程序的COM接口比较方便,在生成了相关的接口代码之后,只需引用接口单元即可,不需很多额外操作. 我新建一个DELPHI 应用程序,建一标准FORM,放一标准按钮,最简单的FORM ...
- 钉钉氚云到金碟之一:金碟KIS专业版的DELPHI接口
近段,在琢磨将钉钉氚云中的业务审批数据打通后直接转化为金碟KIS专业版中的凭证数据,实现业务财务一体化. 通过几天的努力,在网上资料一鳞半爪的情况下,还是成功地初步生成了凭证.看到金碟KIS的凭证窗口 ...
- “破局者”氚云——低代码应用搭建工具,基于钉钉敏捷搭建企业专属应用
关键词:低代码开发.氚云.企业信息化.丰富模板.移动办公 通过信息化来提升管理效率,减低管理成本,增强企业竞争力,是绝大部分企业在发展过程中都绕不开的关键点. 对于大型企业而言,专业的IT人才配备以及 ...
- ALL IN 钉钉的氚云,如何成为低代码头部?
来源 / ToB行业头条 (ID:wwwqifu) 采访对象 / 詹萧 作者 / 樊航 2015年SaaS赛道进入爆发期,历经8年,中国SaaS行业无论从市场规模.产品理念还是 ...
- 使用钉钉、宜搭、简道云及氚云等做项目施工或工程管理的前提
使用钉钉.宜搭.简道云及氚云等做项目施工或工程管理的前提 钉钉.宜搭.简道云及氚云等做项目施工或工程管理的前提 项目施工管理和项目工程管理,在中小型企业中是个难题: 专业的项目管理软件,过臃肿,很多 ...
- 【分享】乐才无需代码连接钉钉氚云的方法
乐才用户使用场景: 企业使用乐才人事智能管理系统管理组织架构.员工档案.招聘流程.员工福利等各个方面,提高人才管理效率.每当有员工入职时,HR需要先在乐才平台创建员工档案,发送电子合同签署,安排培训等 ...
- 五个问答,告诉你阿里云对象存储如何助力钉钉战胜业务洪峰
"基于OSS在弹性扩容.跨省容灾.多租户管理以及传输加速方面的基础能力,钉钉在此次战役过程中,实现了一键切换写入区域,拆分业务到多个区域的功能,同时钉钉在跨区域的图片处理.文档预览的并发处理 ...
- 对接钉钉审批_钉钉审批对接是什么-和钉钉审批对接相关的问题-阿里云开发者社区...
关于 钉钉审批对接的搜索结果 问题 企业系统对接钉钉生成审批单,企业系统处理审批后,如何撤销钉钉审批单 公司erp系统与钉钉对接,erp发起审批后同步到钉钉生成审批实例,在erp中用户处理了审批,如何 ...
- 金蝶云星空与钉钉集成案例
关于移动审批,试用了几个产品,云之家.金蝶轻应用业务审批.最后选择这款金数连接器,主要可以利用金蝶云星空和钉钉审批的原生功能. 手机端处理,不需要总是在金蝶系统过着电脑前处理审批.没有金蝶账号的用户也 ...
最新文章
- java中执行cmd命令_如何通过Java执行cmd命令
- 千锋python全套视频教程400全集-千锋出品全套python视频教程,400大全集,你了解吗?...
- flask 渲染jinja2模版和传参
- 假如年少有为不自卑,懂得什么叫做珍惜
- .net redis定时_一场由fork引发的超时,让我们重新探讨Redis的抖动问题
- Git使用疑难问题分析
- MySQL 如何优化大分页查询?
- 【计算机网络】网络通信基础
- s3c2440 IIC AT24C08
- 基于FPGA的VGA/LCD显示控制器设计(下)
- 基于知识图谱的问答系统入门之—NLPCC2016KBQA数据集
- ipad协议,接口稳定版
- U-BOOT 下载 GitHub
- springboot+vue+elementUI搭建个人博客
- 自学Java的心路历程
- Oracle中修改表列名(SQL语句)
- 如何立即关闭 Node 服务器?
- [转]身体各部位暴瘦的方法
- Mac装双系统的那些优缺点详解
- 大一寒假培训(三)——暴力枚举及妙用