时光飞速以及技术的跌更,目前大多数编程语言为C、java、python,因为有了开源他们的应用飞速发展,使用它们可以完成很多项目了,虽然易语言目前不是编程的非常好的选择了,但是在公司最近的项目来说要实现一些简易的RPA操作的需求,我发现使用其他语言来进行控制其实没有易语言来得快,得益于以前易语言封装了很多对窗口的操作的模块,我思考如何能把易语言打包成给其他语言调用。
最开始想的是直接封装DLL给python然后封装成库来进行调用,但是我发现了一个致命问题,python版本不可能指定为32位,很多生产环境是x64位的python,不可能说给其他电脑装多个环境,于是这种思路就放弃了,因为本身的工作从事过运维和前后端开发也从事过测试这些工作,跨语言调用的方法也了解过,一个是命令行控制访问,一个是通过API形式来进行云计算云下发等,一个是使用语言支持的其他语言的库来实现,经过这些思考和经验,我确定了把易语言封装成类似fastapi框架那种的形式,岂不是就可以和python一样,能够让其他易语言来调用,并且这个路径和方法是我们确定的,我们只需要调用http就可以了,无论是本地还是不同电脑都会有不错的选择,基于易语言强大的界面库,我们还不需要封装后台管理,我觉得能做就做吧,如果就算是想使用vue来做界面,通过易语言做后端也是可以的,使用类似fastapi这种的形势的话,那么我们控制程序的媒介就变成了http请求,我们只需要控制请求里面的方法和参数就能满足函数的调用,并且http的开发也比TCP、UDP容易控制的多,传入的参数也更简单。并且我们可以拓展很多应用,云下发、云计算、云函数、文件服务器、后端框架等,于是我便着手进行测试。
恰好我在网上搜索一些信息后发现HPsocket4C这个DLL,他的功能非常强大,能够支持很多功能,于是根据一些例子我封装了成如下情况,我只是简单的封装了框架,功能可能不多,一个是GET请求,里面我认为可以是获取一些简单信息,参数少的特定,并且获取一些文件的下载,其实云下发就可以是用这种方式来做。二是POST请求,这种的方向是函数参数多,并且需要加密,那么用这种是非常方便的,使用post我们也可以实现一些网络验证,例如易游就是使用的HTTP请求作为的网络验证,使用这个框架你也可以自己制作一个网络验证,只需要把传输的数据使用RC4和AEC加密就可以了,选对一定的参数就可以。
代码里面我有很简单的注释,大家按照编程的规则书写就可以了,使用这套源码可能要懂json类、易语言、以及HTTP请求这套思想,不过我觉得只是实现跨进程的调用是很简单的,我是使用python来调用,只是需要requests库就可以了。
上面是postman的get调用
上面是浏览器直接访问的结果
要测试post则需要使用编程工具或者页面或者postman来实现了
获取到的参数
获取参数
测试请求图片:
图片测试
所有的例子我都打包在了压缩包里面,大家通过下载源码编译是肯定可以看到效果的,我规定的返回结果是json,所以我们只需要控制返回结果在json里面就可以了。这样的规则是又我们定义我们取。