官方THTTPClient.Post方法【低级、严重】bug — 需留意

我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。

事情经过:

今日下午用THTTPClient.Post方法 提交的时候,服务端老是自动过滤掉,百思不得其解。花费近2小时调试 检查了很多遍程序 依然不行。于是就开始怀疑

THttpClient的问题,我切换成indy的IdHTTP 果然可以了,那问题出在哪里呢,于是开始 断点到 THTTPClient.Post 方法内部去看,发现了官方的一个非常

低级的Bug,这个bug从THttpClient被发明至今 一直都还存在!!!!已证明:delphi 10、10.1、10.1.2、10.2 都没修复!!!;我决定写篇博客

希望能帮助到网友们。

官方的方法声明:

 

下面以实例来说明:

如上代码,我们断点到Post方法内部看看:

 

我们接下来看看 官方的EncodingNameToHttpEncodingName 这个方法做了什么:

答案是啥也没干,官方写程序的时候空了一行,睡着了,忘记写代码了!!

解决方法,如果用UTF-8的话,那么就让其默认去吧:

若不是UTF-8,或许有多重方法,我征集下,谁有方法 可以贴下面;我会更新到这篇博客上;

分享到:

0 条评论

沙发空缺中,还不快抢~