CN108762955A - 接口调用方法、装置、计算机设备及存储介质 - Google Patents

接口调用方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN108762955A
CN108762955A CN201810538435.XA CN201810538435A CN108762955A CN 108762955 A CN108762955 A CN 108762955A CN 201810538435 A CN201810538435 A CN 201810538435A CN 108762955 A CN108762955 A CN 108762955A
Authority
CN
China
Prior art keywords
returning
httpclient
object value
unit
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810538435.XA
Other languages
English (en)
Inventor
吕三
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN201810538435.XA priority Critical patent/CN108762955A/zh
Publication of CN108762955A publication Critical patent/CN108762955A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种接口调用方法、装置、计算机设备及存储介质。该方法包括:初始化用于接收写入信息的httpclient类对象;定义用于接收和存储执行结果反馈的变量;接收API调用请求,判断请求类型是get请求,或是post请求;若请求类型是get请求,生成包含URL地址的第一返回对象,并将第一返回对象输入至httpclient类对象,将执行产生的第一执行结果反馈至变量进行存储;若请求类型是post请求,生成第二返回对象,在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储。该方法实现了测试过程中的极为简单的接口调用,且支持的参数类型丰富,而且提高了调用过程中线程的安全性。

Description

接口调用方法、装置、计算机设备及存储介质
技术领域
本申请涉及接口调用技术领域,尤其涉及一种接口调用方法、装置、计算机设备及存储介质。
背景技术
目前,在大型数据云平台中,若配置了多个功能模块,功能模块之间的接口调用一般采用的是http请求、或https请求。但是现有的接口中要实现各种类型的调用,所需要的接口调用请求种类极为繁多,仅仅采用http请求、或https请求无法满足大型数据云平台的接口调用需求。
发明内容
本申请提供了一种接口调用方法、装置、计算机设备及存储介质,旨在解决现有技术中大型数据云平台功能模块之间的接口调用一般采用的是http请求、或https请求,无法满足种类繁多的接口调用需求的问题。
第一方面,本申请提供了一种接口调用方法,其包括:
初始化用于接收写入信息的httpclient类对象;
定义用于接收和存储执行结果反馈的变量;
接收API调用请求,判断请求类型是get请求,或是post请求;
若请求类型是get请求,生成包含URL地址的第一返回对象,并将第一返回对象输入至httpclient类对象,将执行产生的第一执行结果反馈至变量进行存储;
若请求类型是post请求,生成第二返回对象,在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储。
第二方面,本申请提供了一种接口调用装置,其包括:
类对象初始化单元,用于初始化用于接收写入信息的httpclient类对象;
变量定义单元,用于定义用于接收和存储执行结果反馈的变量;
类型判断单元,用于接收API调用请求,判断请求类型是get请求,或是post请求;
第一响应单元,用于若请求类型是get请求,生成包含URL地址的第一返回对象,并将第一返回对象输入至httpclient类对象,将执行产生的第一执行结果反馈至变量进行存储;
第二响应单元,用于若请求类型是post请求,生成第二返回对象,在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储。
第三方面,本申请又提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请提供的任一项所述的接口调用方法。
第四方面,本申请还提供了一种存储介质,其中所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行本申请提供的任一项所述的接口调用方法。
本申请提供一种接口调用方法、装置、计算机设备及存储介质。该方法通过初始化用于接收写入信息的httpclient类对象;定义用于接收和存储执行结果反馈的变量;接收API调用请求,判断请求类型是get请求,或是post请求;若请求类型是get请求,生成包含URL地址的第一返回对象,并将第一返回对象输入至httpclient类对象,将执行产生的第一执行结果反馈至变量进行存储;若请求类型是post请求,生成第二返回对象,在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储。该方法实现了测试过程中的极为简单的接口调用,且支持的参数类型丰富,而且提高了调用过程中线程的安全性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种接口调用方法的示意流程图;
图2是本申请实施例提供的一种接口调用方法的子流程示意图;
图3为本申请实施例提供的一种接口调用方法的另一子流程示意图;
图4为本申请实施例提供的一种接口调用方法的另一子流程示意图;
图5为本申请实施例提供的一种接口调用方法的另一子流程示意图;
图6为本申请实施例提供的一种接口调用装置的示意性框图;
图7为本申请实施例提供的一种接口调用装置的子单元示意性框图;
图8为本申请实施例提供的一种接口调用装置的另一子单元示意性框图;
图9为本申请实施例提供的一种接口调用装置的另一子单元示意性框图;
图10为本申请实施例提供的一种接口调用装置的另一子单元示意性框图;
图11为本申请实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本申请实施例提供的一种接口调用方法的示意流程图。该方法应用于台式电脑、手提电脑、平板电脑等终端中。如图1所示,该方法包括步骤S101~S105。
S101、初始化用于接收写入信息的httpclient类对象。
在本实施例中,接口调用的使用场景是在自动化测试框架中。在搭建自动化测试框架时,需要构建各API模块(具体是接口调用API模块、数据库API模块、Excel表格处理API模块、日期处理API模块)、数据管理模块、接口管理模块、日志输出模块、异常处理模块、并发处理模块、分布式处理模块、案例管理模块、结果报告输出模块。
其中,接口调用API模块,封装了http、https、esg协议(esg协议是Zookeeper协议的一种变形协议)的GET、POST等接口请求方式,支持多线程并发请求。其基于httpclient.jar、java多线程技术,而且已处理其中的线程安全问题。在自动化测试过程中,需要频繁调用接口,此接口调用API模块中的各类API可满足测试需求。
数据库API模块,封装了对Oracle数据库进行增删改查,以及定时轮询等方法,数据源管理使用C3P0(C3P0是一种线程池技术),可配置化管理数据库连接、用户名/密码等信息,性能极佳,在自动化测试过程中,需要频繁访问Oracle数据库,此数据库API模块中的API可满足需求。
Excel表格处理API模块,封装了对Excel2003、2007的读取、输入API,基于POI.jar(POI.jar是java中用于操作Excel的jar包),模块中的API可支持根据左边单元格提示读取右边单元格值、根据上单元格提示读取下单元格值,根据对角线单元格获取整片区域单元格值。
日期处理API模块,封装了对日期处理的相关API,基于Date、Calendar、SimpleDateFormat等工具类,可实现日期对比,获取以年、月、日、时、分、秒为单元差的任意时间,可根据时间获取当年哪周星期几,在自动化测试过程中,需要对日期频繁处理操作,此模块可满足需求。
数据管理模块,用于对测试数据进行分类管理。
接口管理模块,用于管理自动化测试框架中的多个API接口,因为在自动化测试过程中,同一个接口被调用的重复次数很多,为简化代码,缩短后期维护工作量,接口需要单独管理调用,后期在修改多条测试案例时,只需要维护一次接口。
日志输出模块,封装对自动化测试过程中日志输出管理等API,基于LOG4J.jar,可对日志设置成error、log、stdout、info等四个级别,针对不同的日志输出级别灵活调用相关API。
异常处理模块,封装对自动化测试过程中出现异常如何处理等API,基于Exception接口,封装了大量自定义异常,便于在出现异常时快速定位问题根源。
并发处理模块,封装对自动化测试过程中需要使用多线程执行自动化案例等API,基础java多线程技术,此模块提供了初始化线程池、调用、挂起、销毁线程的API,并且通过锁技术处理了线程安全问题。
分布式处理模块,在自动化测试过程中,如果案例过多,一台执行机的效率太低,需要拆分案例在多台执行机上执行,这时候需要在testng.xml文件中配置分组,通过不同分组来指定唯一的执行机,提高执行效率。
案例管理模块,此模块是执行测试案例的模块,通过testng框架,@Test注解来标示,assert静态方法来断言案例执行结果。
结果报告输出模块,此模块是管理测试案例执行完后,以报告的形式输出,测试案例总数,执行通过数,通过率,失败测试案例展示,失败原因展示,以邮件形式发出。
在完成了自动化测试框架的搭建后,即可进行自动化测试。例如本申请中以Excel表格处理API模块调用数据库API模块的接口为场景。
初始化用于接收写入信息的httpclient类对象时,httpclient类对象可以视为一个空白的网页,其初始化了默认超时连接时间(httpclient是Apache JakartaCommon()下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议)。
使用httpclient发送请求、接收响应的过程如下:
11)创建httpclient对象;
12)创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象;
13)若需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求参数;
14)调用httpclient对象的execute(HttpUriRequestrequest)发送请求,该方法返回一个HttpResponse;
15)调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容;
16)释放连接。
在完成了httpclient类对象的初始化后,其可以作为一个容器来接收后续操作的反馈至,并转发至一变量中进行保存。
S102、定义用于接收和存储执行结果反馈的变量。
在本实施例中,定义string类型变量的为了接收后续操作的返回值,其作用类似于一容器,用于存储各类返回值。
S103、接收API调用请求,判断请求类型是get请求,或是post请求。
在本实施例中,由一个API接口向另一API接口发出调用请求,其请求类型无非是get请求或post请求。当判断出请求类型后,对应进行数据反馈即可。
S104、若请求类型是get请求,生成包含URL地址的第一返回对象,并将第一返回对象输入至httpclient类对象,将执行产生的第一执行结果反馈至变量进行存储。
在一实施例中,如图2所示,所述步骤S104包括:
S1041、生成一个GetMethod对象并设置GetMethod对象的响应参数;
S1042、由根据httpclient类对象所生成的执行对象来执行GetMethod生成的Get方法,获取与Get方法对应的响应内容,并获取与Get方法对应的响应状态码;
S1043、若响应状态码对应响应正常状态,根据响应内容得到包含URL地址的第一返回对象。
在本实施例中,GetMethod()是获取当前类及所有继承的父类的public修饰的方法。当新建一GetMethod对象,并通过GetMethod对象对应的Get方法来作为由根据httpclient类对象所生成的执行对象的执行方法,能快速的根据响应状态码获取包含URL地址的第一返回对象,这样能快速响应get请求,生成包含URL地址的第一返回对象。其中,GetMethod对象的响应参数主要包括get请求的超时时间(例如设置超时时间为10s),以及请求重试处理的触发条件(例如get请求三次仍未成功,则触发get请求重试);响应内容是httpclient类对象所生成的执行对象来Get方法时,httpclient类对象对get请求的具体响应内容(如HTTP响应头部信息、HTTP响应内容)。
在一实施例中,如图3所示,所述步骤S104还包括:
S1044、将第一返回对象输入至httpclient类对象;
S1045、在httpclient类对象中执行executeMethod方法,得到第一执行结果;
S1046、将第一执行结果反馈至String类型的变量中进行存储。
在本实施例中,在运行executeMethod方法的时候,需要处理两个异常,分别是HttpException和IOException。引起第一种异常的原因主要可能是在构造getMethod的时候传入的协议不对,比如将"http"写成了"htp",或者服务器端返回的内容不正常等,并且该异常发生是不可恢复的;第二种异常一般是由于网络原因引起的异常,对于这种异常(IOException),HttpClient会根据指定的恢复策略自动试着重新执行executeMethod方法。HttpClient的恢复策略可以自定义(通过实现接口HttpMethodRetryHandler来实现)。通过httpClient的方法setParameter设置的恢复策略,executeMethod返回值是一个整数,表示了执行该方法后服务器返回的状态码,该状态码能表示出该方法执行是否成功、需要认证或者页面发生了跳转(默认状态下GetMethod的实例是自动处理跳转的等)。
S105、若请求类型是post请求,生成第二返回对象,在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储。
在一实施例中,如图4所示,所述步骤S105包括:
S1051、创建用于设置编码格式的PostMethod的子类;
S1052、将post请求对应的数据由Java对向转化为json对象,将json对象转化为字符串;
S1053、创建PostMethod中的UTF8PostMethod子类设置字符串的编码;
S1054、根据已设置编码的字符串得到第二返回对象。
在本实施例中,POST方法(即PostMethod)用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列(Request-Line)中请求URI所指定资源的附加新子项。先通过创建PostMethod的子类,再将将post请求对应的数据由Java对向转化为json对象,将json对象转化为字符串,之后将字符串进行编码而得到第二返回对象。通过上述过程,能快速的根据post请求对应的数据获取第二返回对象。
在一实施例中,如图5所示,所述步骤S105还包括:
S1055、在第二返回对象中添加预先设置的String类型或Map类型的参数;
S1056、将添加参数后的第二返回对象输入至httpclient类对象;
S1057、在httpclient类对象中执行etResponseBodyAsString方法,得到第二执行结果;
S1058、将第二执行结果反馈至String类型的变量中进行存储。
在本实施例中,HttpClient中可以之间使用HttpMethod的getResponseBodyAsString()方法获取返回的内容,在读取之前,如果需要做编码设置可以这样:
HttpMethod get=new GetMethod(url);
httpClient.executeMethod(get);
get.getParams().setContentCharset("GBK");
通过上述设置能有效读取。
可见,该方法实现了测试过程中的极为简单的接口调用,且支持的参数类型丰富,而且提高了调用过程中线程的安全性。
本申请实施例还提供一种接口调用装置,该接口调用装置用于执行前述接口调用方法的任一实施例。具体地,请参阅图6,图6是本申请实施例提供的一种接口调用装置的示意性框图。接口调用装置100可以配置于台式电脑、平板电脑、手提电脑、等终端中。
如图6所示,接口调用装置100包括类对象初始化单元101、变量定义单元102、类型判断单元103、第一响应单元104、及第二响应单元105。
其中,类对象初始化单元101,用于初始化用于接收写入信息的httpclient类对象。
在本实施例中,接口调用的使用场景是在自动化测试框架中。在搭建自动化测试框架时,需要构建各API模块(具体是接口调用API模块、数据库API模块、Excel表格处理API模块、日期处理API模块)、数据管理模块、接口管理模块、日志输出模块、异常处理模块、并发处理模块、分布式处理模块、案例管理模块、结果报告输出模块。
其中,接口调用API模块,封装了http、https、esg协议(esg协议是Zookeeper协议的一种变形协议)的GET、POST等接口请求方式,支持多线程并发请求。其基于httpclient.jar、java多线程技术,而且已处理其中的线程安全问题。在自动化测试过程中,需要频繁调用接口,此接口调用API模块中的各类API可满足测试需求。
数据库API模块,封装了对Oracle数据库进行增删改查,以及定时轮询等方法,数据源管理使用C3P0(C3P0是一种线程池技术),可配置化管理数据库连接、用户名/密码等信息,性能极佳,在自动化测试过程中,需要频繁访问Oracle数据库,此数据库API模块中的API可满足需求。
Excel表格处理API模块,封装了对Excel2003、2007的读取、输入API,基于POI.jar(POI.jar是java中用于操作Excel的jar包),模块中的API可支持根据左边单元格提示读取右边单元格值、根据上单元格提示读取下单元格值,根据对角线单元格获取整片区域单元格值。
日期处理API模块,封装了对日期处理的相关API,基于Date、Calendar、SimpleDateFormat等工具类,可实现日期对比,获取以年、月、日、时、分、秒为单元差的任意时间,可根据时间获取当年哪周星期几,在自动化测试过程中,需要对日期频繁处理操作,此模块可满足需求。
数据管理模块,用于对测试数据进行分类管理。
接口管理模块,用于管理自动化测试框架中的多个API接口,因为在自动化测试过程中,同一个接口被调用的重复次数很多,为简化代码,缩短后期维护工作量,接口需要单独管理调用,后期在修改多条测试案例时,只需要维护一次接口。
日志输出模块,封装对自动化测试过程中日志输出管理等API,基于LOG4J.jar,可对日志设置成error、log、stdout、info等四个级别,针对不同的日志输出级别灵活调用相关API。
异常处理模块,封装对自动化测试过程中出现异常如何处理等API,基于Exception接口,封装了大量自定义异常,便于在出现异常时快速定位问题根源。
并发处理模块,封装对自动化测试过程中需要使用多线程执行自动化案例等API,基础java多线程技术,此模块提供了初始化线程池、调用、挂起、销毁线程的API,并且通过锁技术处理了线程安全问题。
分布式处理模块,在自动化测试过程中,如果案例过多,一台执行机的效率太低,需要拆分案例在多台执行机上执行,这时候需要在testng.xml文件中配置分组,通过不同分组来指定唯一的执行机,提高执行效率。
案例管理模块,此模块是执行测试案例的模块,通过testng框架,@Test注解来标示,assert静态方法来断言案例执行结果。
结果报告输出模块,此模块是管理测试案例执行完后,以报告的形式输出,测试案例总数,执行通过数,通过率,失败测试案例展示,失败原因展示,以邮件形式发出。
在完成了自动化测试框架的搭建后,即可进行自动化测试。例如本申请中以Excel表格处理API模块调用数据库API模块的接口为场景。
初始化用于接收写入信息的httpclient类对象时,httpclient类对象可以视为一个空白的网页,其初始化了默认超时连接时间(httpclient是Apache Jakarta Common()下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议)。
使用httpclient发送请求、接收响应的过程如下:
11)创建httpclient对象;
12)创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象;
13)若需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求参数;
14)调用httpclient对象的execute(HttpUriRequestrequest)发送请求,该方法返回一个HttpResponse;
15)调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容;
16)释放连接。
在完成了httpclient类对象的初始化后,其可以作为一个容器来接收后续操作的反馈至,并转发至一变量中进行保存。
变量定义单元102,用于定义用于接收和存储执行结果反馈的变量。
在本实施例中,定义string类型变量的为了接收后续操作的返回值,其作用类似于一容器,用于存储各类返回值。
类型判断单元103,用于接收API调用请求,判断请求类型是get请求,或是post请求。
在本实施例中,由一个API接口向另一API接口发出调用请求,其请求类型无非是get请求或post请求。当判断出请求类型后,对应进行数据反馈即可。
第一响应单元104,用于若请求类型是get请求,生成包含URL地址的第一返回对象,并将第一返回对象输入至httpclient类对象,将执行产生的第一执行结果反馈至变量进行存储。
在一实施例中,如图7所示,所述第一响应单元104包括:
对象生成单元1041,用于生成一个GetMethod对象并设置GetMethod对象的响应参数;
执行单元1042,用于由根据httpclient类对象所生成的执行对象来执行GetMethod生成的Get方法,获取与Get方法对应的响应内容,并获取与Get方法对应的响应状态码;
响应单元1043,用于若响应状态码对应响应正常状态,根据响应内容得到包含URL地址的第一返回对象。
在本实施例中,GetMethod()是获取当前类及所有继承的父类的public修饰的方法。当新建一GetMethod对象,并通过GetMethod对象对应的Get方法来作为由根据httpclient类对象所生成的执行对象的执行方法,能快速的根据响应状态码获取包含URL地址的第一返回对象,这样能快速响应get请求,生成包含URL地址的第一返回对象。
在一实施例中,如图8所示,所述第一响应单元104还包括:
第一输入单元1044,用于将第一返回对象输入至httpclient类对象;
第一结果获取单元1045,用于在httpclient类对象中执行executeMethod方法,得到第一执行结果;
第一结果存储单元1046,用于将第一执行结果反馈至String类型的变量中进行存储。
在本实施例中,在运行executeMethod方法的时候,需要处理两个异常,分别是HttpException和IOException。引起第一种异常的原因主要可能是在构造getMethod的时候传入的协议不对,比如将"http"写成了"htp",或者服务器端返回的内容不正常等,并且该异常发生是不可恢复的;第二种异常一般是由于网络原因引起的异常,对于这种异常(IOException),HttpClient会根据指定的恢复策略自动试着重新执行executeMethod方法。HttpClient的恢复策略可以自定义(通过实现接口HttpMethodRetryHandler来实现)。通过httpClient的方法setParameter设置的恢复策略,executeMethod返回值是一个整数,表示了执行该方法后服务器返回的状态码,该状态码能表示出该方法执行是否成功、需要认证或者页面发生了跳转(默认状态下GetMethod的实例是自动处理跳转的等)。
第二响应单元105,用于若请求类型是post请求,生成第二返回对象,在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储。
在一实施例中,如图9所示,所述第二响应单元105包括:
第一子类创建单元1051,用于创建用于设置编码格式的PostMethod的子类;
类型转化单元1052,用于将post请求对应的数据由Java对向转化为json对象,将json对象转化为字符串;
第二子类创建单元1053,用于创建PostMethod中的UTF8PostMethod子类设置字符串的编码;
对象获取单元1054,用于根据已设置编码的字符串得到第二返回对象。
在本实施例中,POST方法(即PostMethod)用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列(Request-Line)中请求URI所指定资源的附加新子项。先通过创建PostMethod的子类,再将将post请求对应的数据由Java对向转化为json对象,将json对象转化为字符串,之后将字符串进行编码而得到第二返回对象。通过上述过程,能快速的根据post请求对应的数据获取第二返回对象。
在一实施例中,如图10所示,所述第二响应单元105还包括:
参数增加单元1055,用于在第二返回对象中添加预先设置的String类型或Map类型的参数;
第二输入单元1056,用于将添加参数后的第二返回对象输入至httpclient类对象;
第二结果获取单元1057,用于在httpclient类对象中执行etResponseBodyAsString方法,得到第二执行结果;
第二结果存储单元1058,用于将第二执行结果反馈至String类型的变量中进行存储。
在本实施例中,HttpClient中可以之间使用HttpMethod的getResponseBodyAsString()方法获取返回的内容,在读取之前,如果需要做编码设置可以这样:
HttpMethod get=new GetMethod(url);
httpClient.executeMethod(get);
get.getParams().setContentCharset("GBK");
通过上述设置能有效读取。
可见,该装置实现了测试过程中的极为简单的接口调用,且支持的参数类型丰富,而且提高了调用过程中线程的安全性。
上述接口调用装置可以实现为一种计算机程序的形式,该计算机程序可以在如图11所示的计算机设备上运行。
请参阅图11,图11是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500设备可以是终端。该终端可以是平板电脑、笔记本电脑、台式电脑、个人数字助理等电子设备。
参阅图11,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种接口调用方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种接口调用方法。
该网络接口505用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:初始化用于接收写入信息的httpclient类对象;定义用于接收和存储执行结果反馈的变量;接收API调用请求,判断请求类型是get请求,或是post请求;若请求类型是get请求,生成包含URL地址的第一返回对象,并将第一返回对象输入至httpclient类对象,将执行产生的第一执行结果反馈至变量进行存储;若请求类型是post请求,生成第二返回对象,在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储。
在一实施例中,处理器502还执行如下操作:生成一个GetMethod对象并设置GetMethod对象的响应参数;由根据httpclient类对象所生成的执行对象来执行GetMethod生成的Get方法,获取与Get方法对应的响应内容,并获取与Get方法对应的响应状态码;若响应状态码对应响应正常状态,根据响应内容得到包含URL地址的第一返回对象。
在一实施例中,处理器502还执行如下操作:将第一返回对象输入至httpclient类对象;在httpclient类对象中执行executeMethod方法,得到第一执行结果;将第一执行结果反馈至String类型的变量中进行存储。
在一实施例中,处理器502还执行如下操作:创建用于设置编码格式PostMethod的子类;将post请求对应的数据由Java对向转化为json对象,将json对象转化为字符串;创建PostMethod中的UTF8PostMethod子类设置字符串的编码;根据已设置编码的字符串得到第二返回对象。
在一实施例中,处理器502还执行如下操作:在第二返回对象中添加预先设置的String类型或Map类型的参数;将添加参数后的第二返回对象输入至httpclient类对象;在httpclient类对象中执行etResponseBodyAsString方法,得到第二执行结果;将第二执行结果反馈至String类型的变量中进行存储。
本领域技术人员可以理解,图11中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图11所示实施例一致,在此不再赘述。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本申请的另一实施例中提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令。该程序指令被处理器执行时实现:初始化用于接收写入信息的httpclient类对象;定义用于接收和存储执行结果反馈的变量;接收API调用请求,判断请求类型是get请求,或是post请求;若请求类型是get请求,生成包含URL地址的第一返回对象,并将第一返回对象输入至httpclient类对象,将执行产生的第一执行结果反馈至变量进行存储;若请求类型是post请求,生成第二返回对象,在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储。
在一实施例中,该程序指令被处理器执行时实现:生成一个GetMethod对象并设置GetMethod对象的响应参数;由根据httpclient类对象所生成的执行对象来执行GetMethod生成的Get方法,获取与Get方法对应的响应内容,并获取与Get方法对应的响应状态码;若响应状态码对应响应正常状态,根据响应内容得到包含URL地址的第一返回对象。
在一实施例中,该程序指令被处理器执行时实现:将第一返回对象输入至httpclient类对象;在httpclient类对象中执行executeMethod方法,得到第一执行结果;将第一执行结果反馈至String类型的变量中进行存储。
在一实施例中,该程序指令被处理器执行时实现:创建用于设置编码格式PostMethod的子类;将post请求对应的数据由Java对向转化为json对象,将json对象转化为字符串;创建PostMethod中的UTF8PostMethod子类设置字符串的编码;根据已设置编码的字符串得到第二返回对象。
在一实施例中,该程序指令被处理器执行时实现:在第二返回对象中添加预先设置的String类型或Map类型的参数;将添加参数后的第二返回对象输入至httpclient类对象;在httpclient类对象中执行etResponseBodyAsString方法,得到第二执行结果;将第二执行结果反馈至String类型的变量中进行存储。
所述存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种接口调用方法,其特征在于,包括:
初始化用于接收写入信息的httpclient类对象;
定义用于接收和存储执行结果反馈的变量;
接收API调用请求,判断请求类型是get请求,或是post请求;
若请求类型是get请求,生成包含URL地址的第一返回对象,并将第一返回对象输入至httpclient类对象,将执行产生的第一执行结果反馈至变量进行存储;
若请求类型是post请求,生成第二返回对象,在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储。
2.根据权利要求1所述的接口调用方法,其特征在于,所述生成包含URL地址的第一返回对象,包括:
生成一个GetMethod对象并设置GetMethod对象的响应参数;
由根据httpclient类对象所生成的执行对象来执行GetMethod生成的Get方法,获取与Get方法对应的响应内容,并获取与Get方法对应的响应状态码;
若响应状态码对应响应正常状态,根据响应内容得到包含URL地址的第一返回对象。
3.根据权利要求1所述的接口调用方法,其特征在于,所述将第一返回对象执行产生的第一执行结果反馈至变量进行存储,包括:
将第一返回对象输入至httpclient类对象;
在httpclient类对象中执行executeMethod方法,得到第一执行结果;
将第一执行结果反馈至String类型的变量中进行存储。
4.根据权利要求1所述的接口调用方法,其特征在于,所述生成第二返回对象,包括:
创建用于设置编码格式的PostMethod的子类;
将post请求对应的数据由Java对向转化为json对象,将json对象转化为字符串;
创建PostMethod中的UTF8PostMethod子类设置字符串的编码;
根据已设置编码的字符串得到第二返回对象。
5.根据权利要求4所述的接口调用方法,其特征在于,所述在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储,包括:
在第二返回对象中添加预先设置的String类型或Map类型的参数;
将添加参数后的第二返回对象输入至httpclient类对象;
在httpclient类对象中执行etResponseBodyAsString方法,得到第二执行结果;
将第二执行结果反馈至String类型的变量中进行存储。
6.一种接口调用装置,其特征在于,包括:
类对象初始化单元,用于初始化用于接收写入信息的httpclient类对象;
变量定义单元,用于定义用于接收和存储执行结果反馈的变量;
类型判断单元,用于接收API调用请求,判断请求类型是get请求,或是post请求;
第一响应单元,用于若请求类型是get请求,生成包含URL地址的第一返回对象,并将第一返回对象输入至httpclient类对象,将执行产生的第一执行结果反馈至变量进行存储;
第二响应单元,用于若请求类型是post请求,生成第二返回对象,在第二返回对象中添加预设类型的参数输入至httpclient类对象,将执行产生的第二执行结果反馈至变量进行存储。
7.根据权利要求6所述的接口调用装置,其特征在于,所述第一响应单元,包括:
对象生成单元,用于生成一个GetMethod对象并设置GetMethod对象的响应参数;
执行单元,用于由根据httpclient类对象所生成的执行对象来执行GetMethod生成的Get方法,获取与Get方法对应的响应内容,并获取与Get方法对应的响应状态码;
响应单元,用于若响应状态码对应响应正常状态,根据响应内容得到包含URL地址的第一返回对象;
第一释放单元,用于释放连接。
8.根据权利要求6所述的接口调用装置,其特征在于,所述第二响应单元,包括:
第一子类创建单元,用于创建用于设置编码格式的PostMethod的子类;
类型转化单元,用于将post请求对应的数据由Java对向转化为json对象,将json对象转化为字符串;
第二子类创建单元,用于创建PostMethod中的UTF8PostMethod子类设置字符串的编码;
对象获取单元,用于根据已设置编码的字符串得到第二返回对象;
第二释放单元,用于释放连接。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5中任一项所述的接口调用方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的接口调用方法。
CN201810538435.XA 2018-05-30 2018-05-30 接口调用方法、装置、计算机设备及存储介质 Pending CN108762955A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810538435.XA CN108762955A (zh) 2018-05-30 2018-05-30 接口调用方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810538435.XA CN108762955A (zh) 2018-05-30 2018-05-30 接口调用方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN108762955A true CN108762955A (zh) 2018-11-06

Family

ID=64003962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810538435.XA Pending CN108762955A (zh) 2018-05-30 2018-05-30 接口调用方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN108762955A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669871A (zh) * 2018-12-24 2019-04-23 枫国宏利信息科技服务(成都)有限公司 一种实现Oracle Form自动化测试的方法
CN109783367A (zh) * 2018-12-15 2019-05-21 中国平安人寿保险股份有限公司 接口测试方法、装置、计算机装置及存储介质
CN110333954A (zh) * 2019-04-04 2019-10-15 平安科技(深圳)有限公司 基于django框架的接口调用记录方法、装置、设备及存储介质
CN110879781A (zh) * 2019-11-06 2020-03-13 北京奇艺世纪科技有限公司 程序调试方法、装置、电子设备及计算机可读存储介质
CN111552578A (zh) * 2020-04-30 2020-08-18 成都新潮传媒集团有限公司 一种第三方接口调用方法及装置
CN112015483A (zh) * 2020-08-07 2020-12-01 北京浪潮数据技术有限公司 Post请求参数自动化处理方法、装置及可读存储介质
CN113254112A (zh) * 2021-04-29 2021-08-13 杭州天谷信息科技有限公司 一种请求和接口的关联方法及系统
CN113938480A (zh) * 2021-10-21 2022-01-14 四川长虹电器股份有限公司 测试环境与正式环境之间的数据互通的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110276A (zh) * 2011-03-28 2011-06-29 中国建设银行股份有限公司 信用卡征信协查方法及其系统
CN105357468A (zh) * 2015-11-06 2016-02-24 国家电网公司 一种资源适配方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110276A (zh) * 2011-03-28 2011-06-29 中国建设银行股份有限公司 信用卡征信协查方法及其系统
CN105357468A (zh) * 2015-11-06 2016-02-24 国家电网公司 一种资源适配方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
姚鑫: ""分布式手机软件应用搜索爬虫系统设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783367A (zh) * 2018-12-15 2019-05-21 中国平安人寿保险股份有限公司 接口测试方法、装置、计算机装置及存储介质
CN109783367B (zh) * 2018-12-15 2023-10-27 中国平安人寿保险股份有限公司 接口测试方法、装置、计算机装置及存储介质
CN109669871B (zh) * 2018-12-24 2021-05-18 枫国宏利信息科技服务(成都)有限公司 一种实现Oracle Form自动化测试的方法
CN109669871A (zh) * 2018-12-24 2019-04-23 枫国宏利信息科技服务(成都)有限公司 一种实现Oracle Form自动化测试的方法
CN110333954A (zh) * 2019-04-04 2019-10-15 平安科技(深圳)有限公司 基于django框架的接口调用记录方法、装置、设备及存储介质
CN110333954B (zh) * 2019-04-04 2024-02-23 平安科技(深圳)有限公司 基于django框架的接口调用记录方法、装置、设备及存储介质
CN110879781A (zh) * 2019-11-06 2020-03-13 北京奇艺世纪科技有限公司 程序调试方法、装置、电子设备及计算机可读存储介质
CN110879781B (zh) * 2019-11-06 2023-10-03 北京奇艺世纪科技有限公司 程序调试方法、装置、电子设备及计算机可读存储介质
CN111552578A (zh) * 2020-04-30 2020-08-18 成都新潮传媒集团有限公司 一种第三方接口调用方法及装置
CN112015483B (zh) * 2020-08-07 2021-12-03 北京浪潮数据技术有限公司 Post请求参数自动化处理方法、装置及可读存储介质
CN112015483A (zh) * 2020-08-07 2020-12-01 北京浪潮数据技术有限公司 Post请求参数自动化处理方法、装置及可读存储介质
CN113254112A (zh) * 2021-04-29 2021-08-13 杭州天谷信息科技有限公司 一种请求和接口的关联方法及系统
CN113938480A (zh) * 2021-10-21 2022-01-14 四川长虹电器股份有限公司 测试环境与正式环境之间的数据互通的方法

Similar Documents

Publication Publication Date Title
CN108762955A (zh) 接口调用方法、装置、计算机设备及存储介质
CN108763083A (zh) 自动化测试方法、装置、计算机设备及存储介质
US10212053B2 (en) Declarative and extensible model for provisioning of cloud based services
US10230571B2 (en) Microservice-based application development framework
US9100345B2 (en) Systems and/or methods for supporting a generic framework for integration of on-premises and SaaS applications with security, service mediation, administrative, and/or monitoring capabilities
CN107770225B (zh) 一种webService访问系统和访问webService的方法
CN110297632A (zh) 代码生成方法和装置
CN107870762B (zh) Soa调用链路跟踪的方法、装置及系统
US10505881B2 (en) Generating message envelopes for heterogeneous events
WO2014039918A1 (en) Ldap-based multi-customer in-cloud identity management system
CN108369502A (zh) 作为部署的一部分的动态/按需打包
CN108762966A (zh) 系统异常拦截方法、装置、计算机设备及存储介质
EP3391216A1 (en) Packaging tool for first and third party component deployment
CN109522139B (zh) 一种数据表服务生成调用方法、装置、设备及存储介质
WO2012016400A1 (zh) 配置文件管理的方法及装置
CN111581169A (zh) 数据导入方法、装置、计算机设备及存储介质
CN107908488A (zh) 消息请求接口交互方法、装置、计算机设备及存储介质
US10506392B1 (en) Stream-processing of telecommunication diameter event records
CN112905160A (zh) 一种基于axios的封装注册全局拦截方法及装置
CN113794652A (zh) 数据处理方法、装置、电子设备及存储介质
CN109858257B (zh) 访问控制方法及装置
CN103179211A (zh) 一种基于云计算的综合运营支撑系统数据处理方法和系统
CN101997721A (zh) 一种电信网络管理系统、方法及相应的装置
CN108415894A (zh) 报表数据初始化方法、装置、计算机设备及存储介质
US10462234B2 (en) Application resilience system and method thereof for applications deployed on platform

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination