(下篇)java通过http请求请求三方接口:设置请求头,请求体

这篇具有很好参考价值的文章主要介绍了(下篇)java通过http请求请求三方接口:设置请求头,请求体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍:springcloud项目server子模块内部集成了低代码平台来配置通用列表查询,需要对低代码配置权限,低代码使用不了server模块的feign调用,只能用http请求去调用分布式项目的用户模块来获取权限,通过restTemplate调用接口,postman携带token信息可以直接调通用户中心,但是通过低代码调不到,报500网络错误,查看用户中心那边日志后发现是没拿到token,说明需要低代码内部通过htttp请求携带token去请求。

第一步:通过方法获取页面传入的token

//使用RequestContextHolder工具获取request相关变量
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        if (attributes != null) {
            // 获取request
            HttpServletRequest request = attributes.getRequest();
            String token = request.getHeader("Authorization");
        }

第二步:将token信息设置到请求头中

HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.set("Authorization", token);
HttpEntity requestEntity = new HttpEntity(requestHeaders);

第三步:通过restTemplate调用http请求:

HttpEntity requestEntity = new HttpEntity(requestHeaders);
        ResponseEntity<Result> response = null;
        try {
            if (StringUtils.isNotBlank(scopeKeys)) {
                response = restTemplate.exchange(getMnsUrl + "?key=" + key, HttpMethod.GET, requestEntity, Result.class);
            }
        } catch (RestClientException e) {
            e.printStackTrace();
        }
        if (null != response) {
            Result body = response.getBody();
        }

报错:

httpservletrequest 设置请求头,http,网络协议,网络,java

总结:代码

//使用RequestContextHolder工具获取request相关变量
        ServletRequestAttributes attributes = (ServletRequestAttributes)         RequestContextHolder.getRequestAttributes();
        HttpHeaders requestHeaders = new HttpHeaders();
        if (attributes != null) {
            // 获取request
            HttpServletRequest request = attributes.getRequest();
            String token = request.getHeader("Authorization");
            requestHeaders.set("Authorization", token);
        }
        HttpEntity requestEntity = new HttpEntity(requestHeaders);
        ResponseEntity<Result> response = null;
        try {
            if (StringUtils.isNotBlank(scopeKeys)) {
                response = restTemplate.exchange(getMnsUrl + "?key=" + key, HttpMethod.GET, requestEntity, Result.class);
            }
        } catch (RestClientException e) {
            e.printStackTrace();
        }
        if (null != response) {
            Result body = response.getBody();
        } 

ps:postman通过公网ip携带token直接调通用户中心是因为能直接拿到,postman携带token调低代码,低代码再调用户中心报错是因为间接调用,那边取不到token,这种情况需要把token通过请求头传过去。文章来源地址https://www.toymoban.com/news/detail-764239.html

到了这里,关于(下篇)java通过http请求请求三方接口:设置请求头,请求体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过curl命令分析http接口请求各阶段的耗时等

    一、介绍 Curl是一个用于发送和接收请求的命令行工具和库, 可以用来测试网站能否正常访问、网站URL响应什么状态码、网站响应文本内容、连接接口的请求时间等 curl 是常用的命令行工具,用来请求 Web 服务器,它的名字就是客户端(client)的 URL 工具的意思,如果熟练的话

    2024年02月03日
    浏览(29)
  • Java调用第三方http接口的常用方式

    前言 一、通过JDK网络类Java.net.HttpURLConnection 二、通过apache common封装好的HttpClient 三、通过Spring的RestTemplate 总结 今天项目需要接口互相调用,就看了一下这几个调用的方式 通过java.net包下的原生java.api提供的http请求 使用步骤: 通过统一的资源定位器(java.net.URL)获取连接器(java.

    2024年02月08日
    浏览(50)
  • JAVA调用第三方接口的GET/POST/PUT请求方式

    GET请求 POST请求 POST请求(JSON传参) PUT请求(传TOKEN)

    2024年02月03日
    浏览(48)
  • 使用HttpServletRequest或RequestContextHolder或@RequestHeader获取http请求头信息

    记录 :392 场景 :在微服务中获取http请求头信息方式,可以在代码中注入HttpServletRequest;可以使用Spring的RequestContextHolder,可以使用@RequestHeader注解。 版本 :JDK 1.8,SpringBoot 2.6.3,springCloud 2021.0.1 1.使用HttpServletRequest获取请求头信息 1.1在微服务的Controller层获取请求头 本质就是使

    2024年02月10日
    浏览(26)
  • Java http 接口请求

    2024年02月11日
    浏览(34)
  • 【仿写tomcat】四、解析http请求信息,响应给前端,HttpServletRequest、HttpServletResponse的简单实现

    在解析请求之前我们要思考一个问题,我们解析的是其中的哪些内容? 对于最基本的实现,当然是 请求类型 , 请求的url 以及 请求参数 ,我们可以根据请求的类型作出对应的处理,通过url在我们的mapstore中找到servlet, 那么请求的参数我们是不是还没有储存的地方呢? 所以

    2024年02月12日
    浏览(29)
  • java调用http接口(get请求和post请求)

    1.http接口的格式如下: 图片选择失败,我只能把数据贴出来,如果有不懂的可以问我哈。 http://localhost:8881/department/getDepartmentList接口数据如下:(请求方式是GET) http://localhost:8881/department/getDataById?id=3接口数据如下:(请求方式是POST) 2.需要引入的包有: 3.实现方法如下:

    2024年02月13日
    浏览(41)
  • 万字长文讲解调用第三方接口,RestTemplate,urlConnection使用详解,java代码模拟postman发送请求

    业务场景 :在日常开发中,经常需要调用第三方接口,例如调用物流接口,此时需要利用urlConnection或者restTemplate模拟postman发送请求,请求支持加header ,设置content-type支持传递json;请求方式get,post,也可以需要传递文件,或者传递文件流; 下面这个例子就包含日常开发中大

    2024年02月05日
    浏览(49)
  • java打印http接口的请求和响应

    基于spring提供的机制,有3种方法可以实现接口请求响应日志的打印,分别是CommonsRequestLoggingFilter、HandlerInterceptor、RequestBodyAdviceAdapter、ResponseBodyAdvice。 通过设置 web 的日志级别为 DEBUG,spring会自己打印请求参数。该方法打印的内容覆盖了后面介绍的所有方法中日志的内容,如

    2024年02月02日
    浏览(64)
  • java http请求设置代理 Proxy

    有如下一种需求,原本A要给C发送请求,但是因为网络原因,需要借助B才能实现,所以由原本的A-C变成了A-B-C。 这种情况,更多的见于内网请求由统一的网关做代理然后转发出去,比如你本地的机器想要对外上网,都是通过运营商给的出口IP也就是公网地址实现的。这种做法

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包