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从氚云下载数据相关推荐

  1. 钉钉氚云到金碟之二:测试凭证写入金碟KIS(DELPHI)

    DELPHI在使用其他程序的COM接口比较方便,在生成了相关的接口代码之后,只需引用接口单元即可,不需很多额外操作. 我新建一个DELPHI 应用程序,建一标准FORM,放一标准按钮,最简单的FORM ...

  2. 钉钉氚云到金碟之一:金碟KIS专业版的DELPHI接口

    近段,在琢磨将钉钉氚云中的业务审批数据打通后直接转化为金碟KIS专业版中的凭证数据,实现业务财务一体化. 通过几天的努力,在网上资料一鳞半爪的情况下,还是成功地初步生成了凭证.看到金碟KIS的凭证窗口 ...

  3. “破局者”氚云——低代码应用搭建工具,基于钉钉敏捷搭建企业专属应用

    关键词:低代码开发.氚云.企业信息化.丰富模板.移动办公 通过信息化来提升管理效率,减低管理成本,增强企业竞争力,是绝大部分企业在发展过程中都绕不开的关键点. 对于大型企业而言,专业的IT人才配备以及 ...

  4. ALL IN 钉钉的氚云,如何成为低代码头部?

    来源  /    ToB行业头条  (ID:wwwqifu) 采访对象 /   詹萧    作者 /   樊航 2015年SaaS赛道进入爆发期,历经8年,中国SaaS行业无论从市场规模.产品理念还是 ...

  5. ​使用钉钉、宜搭、简道云及氚云等做项目施工或工程管理的前提

    ​使用钉钉.宜搭.简道云及氚云等做项目施工或工程管理的前提 钉钉.宜搭.简道云及氚云等做项目施工或工程管理的前提 项目施工管理和项目工程管理,在中小型企业中是个难题: 专业的项目管理软件,过臃肿,很多 ...

  6. 【分享】乐才无需代码连接钉钉氚云的方法

    乐才用户使用场景: 企业使用乐才人事智能管理系统管理组织架构.员工档案.招聘流程.员工福利等各个方面,提高人才管理效率.每当有员工入职时,HR需要先在乐才平台创建员工档案,发送电子合同签署,安排培训等 ...

  7. 五个问答,告诉你阿里云对象存储如何助力钉钉战胜业务洪峰

    "基于OSS在弹性扩容.跨省容灾.多租户管理以及传输加速方面的基础能力,钉钉在此次战役过程中,实现了一键切换写入区域,拆分业务到多个区域的功能,同时钉钉在跨区域的图片处理.文档预览的并发处理 ...

  8. 对接钉钉审批_钉钉审批对接是什么-和钉钉审批对接相关的问题-阿里云开发者社区...

    关于 钉钉审批对接的搜索结果 问题 企业系统对接钉钉生成审批单,企业系统处理审批后,如何撤销钉钉审批单 公司erp系统与钉钉对接,erp发起审批后同步到钉钉生成审批实例,在erp中用户处理了审批,如何 ...

  9. 金蝶云星空与钉钉集成案例

    关于移动审批,试用了几个产品,云之家.金蝶轻应用业务审批.最后选择这款金数连接器,主要可以利用金蝶云星空和钉钉审批的原生功能. 手机端处理,不需要总是在金蝶系统过着电脑前处理审批.没有金蝶账号的用户也 ...

最新文章

  1. java中执行cmd命令_如何通过Java执行cmd命令
  2. 千锋python全套视频教程400全集-千锋出品全套python视频教程,400大全集,你了解吗?...
  3. flask 渲染jinja2模版和传参
  4. 假如年少有为不自卑,懂得什么叫做珍惜
  5. .net redis定时_一场由fork引发的超时,让我们重新探讨Redis的抖动问题
  6. Git使用疑难问题分析
  7. MySQL 如何优化大分页查询?
  8. 【计算机网络】网络通信基础
  9. s3c2440 IIC AT24C08
  10. 基于FPGA的VGA/LCD显示控制器设计(下)
  11. 基于知识图谱的问答系统入门之—NLPCC2016KBQA数据集
  12. ipad协议,接口稳定版
  13. U-BOOT 下载 GitHub
  14. springboot+vue+elementUI搭建个人博客
  15. 自学Java的心路历程
  16. Oracle中修改表列名(SQL语句)
  17. 如何立即关闭 Node 服务器?
  18. [转]身体各部位暴瘦的方法
  19. Mac装双系统的那些优缺点详解
  20. 大一寒假培训(三)——暴力枚举及妙用

热门文章

  1. RPC 框架基本了解
  2. Delphi下实现鼠标自动点击器
  3. 华为设备配置Telnet与SSH服务实现运程连接网络设备
  4. 最近工作中遇到的问题和解决
  5. oracle mysql 卸载_Oracle完全卸载详解
  6. 安装 libtorrent遇到问题
  7. C#中接口(Interface)与抽象类(abstract)的区别
  8. 关于作用域和自由变量的理解
  9. 华东师范大学NLP实验室CubeNLP
  10. Java选择题(十)