介绍
如何在Java中使用假装发送一个HTTP请求?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
<强>引入依赖强>
首先,我们需要将假装的基础依赖引入项目,因为我们只使用假装的远程功能,因此,只引入基础依赖。
此外在项目中,我们还自定义了了JSON转换和日志设置,因此还需要引入这些的第三方依赖,如下所示。
@RequestLine (“/user/getone& # 63; arkOrgId={arkOrgId},用户id={userId}“) JSONObject getOneStaff (@Param (“arkOrgId")字符串arkOrgId @Param (“userId")字符串标识); @RequestLine(“发布/user/add") @Headers(“内容类型:应用程序/json") 身体@Body (“{}”) JSONObject saveStaff (@Param (“body")SaveEmployeeDTO SaveEmployeeDTO);
在代码实例中,我们定义了两种发送的实例,一种是得到请求,一种是后请求,下面,我们分别来看一下其中的代码的作用是什么。
- <李> @RequestLine:定义发送方式和发送接口定义,其中用GET和POST来定义发送方式,然后空格后,写上servelt路径(上下文路径和域名或ip端口号在其他地方配置);李> <李>{}:用来作为占位符,动态填充需要的参数,李> <>李@Param:用来匹配的URI中的占位符;李> <>李@Headers(“内容类型:应用程序/json"):构建请求表头,在帖子请求中,需要声明该请求的发送格式为json,李> <>李@Body:帖子请求,需要标注请求体;李> <>李JSONObject:在本实例中,采用是一个通用的json对象来接收,方便统一,在自己的代码中,也可以定义一个接受实体类来接受,作用是一样的。李>
文章请求,需要在实体中重写toString()方法,使其在发送时调用该方法后,是一个json字符串,详细见后文的技巧中写的。
引用><强>定义发送客户端强>
@ configuration 公开课FeignConfig { 公共静态最终字符串DATE_TIME_FORMAT=皔yyy-MM-dd HH: mm: ss"; @ value (“$ {staff.base.url}“) 私人字符串staffBaseUrl; @ bean 公共StaffFeignService StaffFeignService () { GsonBuilder builder=new GsonBuilder (); builder.setDateFormat (DATE_TIME_FORMAT); 返回Feign.builder () .retryer (closeFeignRetry ()) .decoder(新GsonDecoder (builder.create ())) .encoder(新GsonEncoder ()) . log(新Slf4jLogger ()) .logLevel (Logger.Level.FULL) .target (StaffFeignService。类,staffBaseUrl); }/* * *关闭假装的失败重试功能 */@ bean 公共重试closeFeignRetry () { 返回Retryer.NEVER_RETRY; } @ bean 公众的要求。选择选项(){ 返回新请求。选项(15000、30000); } }紧接着,我们来定义发送客户端。
首先,我们采用@ value来动态添加路由,这样,就可以根据在配置文件中的属性来添加上下文路径,从而做到可拓展。
然后,假装的很多配置都是可以根据自身项目需要在DIY的,因此在这里,我们配置了编解码采用GSON的编解码器,日志级别设置全打印。通过该设置来生成一个假装客户端。
假装官方文档,在官方文档中,有详细的配置说明,根据自身需要使用,即可。
<强>使用强>
@ autowired StaffFeignService StaffFeignService;//得到请求 JSONObject saveSingleQrCode=staffFeignService.saveSingleQrCode (userId);//后请求 SaveMultiQrCodesDTO SaveMultiQrCodesDTO=new SaveMultiQrCodesDTO ();; JSONObject saveMultiQrCodes=staffFeignService.saveMultiQrCodes (saveMultiQrCodesDTO);通过该方式,即可发送对应请求。
<强>提示
强>记录一些在使用中的重点,需要注意。
重写toString()方法
如何在Java中使用假装发送一个HTTP请求