请自行揣摩代码

  1. package com.hudai.platform.manager.util;
  2.  
  3. import java.net.URI;
  4. import java.net.URISyntaxException;
  5.  
  6. import javax.annotation.Resource;
  7.  
  8. import org.apache.commons.codec.binary.Base64;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.http.HttpStatus;
  13. import org.springframework.http.MediaType;
  14. import org.springframework.http.RequestEntity;
  15. import org.springframework.http.ResponseEntity;
  16. import org.springframework.stereotype.Component;
  17. import org.springframework.web.client.RestTemplate;
  18.  
  19. import com.alibaba.fastjson.JSONObject;
  20. import com.hudai.platform.manager.config.BaseEnum;
  21. import com.hudai.platform.manager.model.BaseResponse;
  22.  
  23. /**
  24. * @author WanHongLei
  25. * @version 创建时间:2019年2月19日 下午3:09:13 类说明
  26. */
  27. @Component
  28. public class RestApi {
  29. private static final Logger logger = LoggerFactory.getLogger(RestApi.class);
  30.  
  31. @Resource
  32. private RestTemplate restTemplate;
  33.  
  34. @Value("${xjd.applications.url}")
  35. private String url;
  36.  
  37. @Value("${clientCredentials}")
  38. private String clientCredentials;
  39.  
  40. public BaseResponse<JSONObject> proxy(Object obj, String path) {
  41. URI uri;
  42. try {
  43. uri = new URI(url + path);
  44. } catch (URISyntaxException e) {
  45. logger.error("URI构建失败", e);
  46. return new BaseResponse<>(BaseEnum.FAILED.getCode(), BaseEnum.FAILED.getName());
  47. }
  48.  
  49. String base64ClientCredentials = new String(Base64.encodeBase64(clientCredentials.getBytes()));
  50.  
  51. RequestEntity<Object> requestEntity = RequestEntity.post(uri).header("Authorization", "Basic " + base64ClientCredentials).contentType(MediaType.APPLICATION_JSON)
  52. .accept(MediaType.APPLICATION_JSON).body(obj);
  53. ResponseEntity<JSONObject> responseEntity = restTemplate.exchange(requestEntity, JSONObject.class);
  54. JSONObject jsonObj = responseEntity.getBody();
  55. if(responseEntity.getStatusCode() == HttpStatus.OK){
  56. return new BaseResponse<>(jsonObj);
  57. }else{
  58. logger.error("请求失败,errmsg = " + jsonObj.toJSONString());
  59. return new BaseResponse<>(jsonObj.getIntValue("error"), jsonObj.getString("msg"));
  60. }
  61. }
  62. }

application.properties中添加:clientCredentials=user:password

spring rest 请求怎样添加Basic Auth请求頭的更多相关文章

  1. 精讲RestTemplate第9篇-如何通过HTTP Basic Auth认证

    本文是精讲RestTemplate第9篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层H ...

  2. java 发送带Basic Auth认证的http post请求实例代码

    构造http header private static final String URL = "url"; private static final String APP_KEY ...

  3. java 发送带Basic Auth认证的http post请求

    构造http header private static final String URL = "url"; private static final String APP_KEY ...

  4. iOS AFNetWorking下得Basic Auth认证请求方式

    我新入职了一家公司,做了一个项目,服务器的大哥说他采用的是Basic Auth认证请求方式,一般我们用的都是OAuth的认证方式,下面我们就对比一下这两种认证方式 百度百科得到如下 Basic Aut ...

  5. 用Retrofit发送请求中添加身份验证

    用Retrofit发送请求中添加身份验证====================在安卓应用开发中, retrofit可以极大的方便发送http网络请求,不管是GET, POST, 还是PUT, DEL ...

  6. WebAuthorize(中间件对所有请求进行拦截)core只有通过添加中间件过滤请求方式 而非继承然后写特性的那种方式

    一.WebAuthorize 1.项目名称 WebAuthorize 2.加个中间件 过滤请求. using Microsoft.AspNetCore.Builder; using Microsoft ...

  7. Spring RestTemplate中几种常见的请求方式GET请求 POST请求 PUT请求 DELETE请求

    Spring RestTemplate中几种常见的请求方式 原文地址: https://blog.csdn.net/u012702547/article/details/77917939   版权声明 ...

  8. Spring Cloud Zuul API服务网关之请求路由

    目录 一.Zuul 介绍 二.构建Spring Cloud Zuul网关 构建网关 请求路由 请求过滤 三.路由详解 一.Zuul 介绍 ​ 通过前几篇文章的介绍,我们了解了Spring Cloud ...

  9. 笔记:Spring Cloud Hystrix 异常处理、缓存和请求合并

    异常处理 在 HystrixCommand 实现的run方法中抛出异常,除了 HystrixBadRequestException之外,其他异常均会被Hystrix 认为命令执行失败并触发服务降级处理 ...

随机推荐

  1. nodejs 用户登录密码md5加密

    jade文件 div.login ul.inp-content  li span= '用户名:' input.ui-input1#input1(placeholder='请输入手机号')  li sp ...

  2. GIT 团队协作快速入门使用

    GIT使用: 1.本地新建一个文件夹 git init 2.克隆远程仓库 git clone git@xxxxx.git 3.本地创建一个dev分支 (前提是服务器端已经创建好有 DEV 分支) gi ...

  3. 1005: [HNOI2008]明明的烦恼

    Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 6539  Solved: 2558[Submit][Status][Discuss] Descripti ...

  4. 什么是 TCP/IP?

    前言: 精通 TCP/IP,熟练使用 Socket 进行网路编程. 看到这句话,有没有感到很熟悉呀?相信很多人在投递简历的时候都看到过这条要求,很多人会觉得我们在实际开发中一般用不到这些知识,所以对这 ...

  5. Linux dmidecode命令

    1.linux系统自带的dmidecode工具查询服务器硬件信息 dmidecode 用于获取服务器的硬件信息,通常是在不打开计算机机箱的情况下使用该命令来查找硬件详细信息 这个命令可以查看内存的几乎 ...

  6. 模型类序列化器ModelSerializer

    定义 比如我们创建一个BookInfoSerializer class BookInfoSerializer(serializers.ModelSerializer): ""&qu ...

  7. A1035 Password (20)(20 分)

    A1035 Password (20)(20 分) To prepare for PAT, the judge sometimes has to generate random passwords f ...

  8. (转) Redis哨兵的详解

    1 哨兵的作用 哨兵是redis集群架构中非常重要的一个组件,主要功能如下: 1. 集群监控:负责监控redis master和slave进程是否正常工作 2. 消息通知:如果某个redis实例有故障 ...

  9. Python 交互模式中 Delete/Backspace 键乱码问题

    进入 Python 交互模式,按下 Delete/Backspace 键,会出现 ^H 字符 解决方式: 1. 进到 Python 的Modules目录 [root@cyt-test Python-2 ...

  10. Nodejs-内置核心模块&npm包管理工具

    1.核心模块的意义 如果只是在服务器运行JavaScript代码,其实意义不大(浏览器就可以解决)因为无法实现功能(读写文件,访问网络) Node的用处在于本身还提供了一系列的功能模块,用于与操作系统 ...