除了接口,有技术实现把数据自动填进软件系统的?

现在这个项目涉及一个上级平台,没开放接口给我们,因为没有接口,好多业务数据要填报几次,有大神有解决解决办法,推荐一下吧

2、思路 
上级系统是一个网站系统,也提供我单位登录的帐号及密码,我们可以登录进去,用手工方式进行处理,但由于量太大,这种方式是不现实的,由于它是b/s结构,并且有帐号及密码,这就为我们自己封装接口提供了可能。

步骤,以获取数据为例,其它接口类似: 
a.通过分析上级系统的登录页面,得到登录所需的调用地址,及参数提交方法 
b.通过分析上级系统查询的页面,得到js获取数据的url调用地址及方法 
c.通过分析的结果,使用程序模拟登录,及数据查询,从而获取我们想要的数据

3、使用的工具 
chrome开发者工具、fiddle:用于分析和跟踪网页请求 
开发工具:.net、java各种开发语言都可以(因为单位的系统是c#,所以这里使用的c#)

4、实现摘要

查询页面示例

在chrome开发者工具及fiddle可跟踪到如下查询提交url地址及参数,提交方式是post: 
http://xxx.xxx.xxx.xxx/xxx/ajax/query.aspx 
 
我们可以分析一下参数,可以看出调用是分页获取数据,如pageSeize是一页返回的行数,我们可以尝试将此参数调大,看能不能一次调用获取全部数据,如果不能则需要多次调用,然后合并结果。 

最后返回的结果是一个json:

到这里就已经得到我们想要的结果了。 
接下在来就是使用编写程序模拟post调用这个url,并取得返回结果,这里就不在赘述了。

5、注意事项 
保持登录状态: 
因为在程序每次调用时,都需要在登录的状态,才能调用成功,所以需要在保持调用的cookie数据,下面这里详细介绍了如何去做。 
http://blog.csdn.net/chenbin520/article/details/7561293 
如果登录是需要验证码的系统,可以尝试长期保持登录状态,一旦下线,就提供验证码给前端用户,手工进行验证一次,并再次保持长连。

6、结论 
使用这种方法,我们应该可以自行连接大部分的系统获取和提交数据。 
缺点是分析时间长,而且如果对方更改了系统,我们的接口程序也要做相应调整(其实通过对方提供的接口一样存在这个问题)。 
优点是手工可以处理的功能,都可以通过这种方法封装出来,而且也不需要连接到对方的数据库中,同时数据肯定是符合对方系统要求的。 
所以在有对方接口的情况下,尽量还是使用接口,可以省心,如果不想受制对方接口,就自己做吧,自力更生、丰衣足食嘛。

温馨提示:答案为网友推荐,仅供参考
相似回答