如何在Java中使用假装发送一个HTTP请求

  介绍

如何在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请求