zoukankan      html  css  js  c++  java
  • spring rest 请求怎样添加Basic Auth请求頭

    请自行揣摩代码

    package com.hudai.platform.manager.util;
    
    import java.net.URI;
    import java.net.URISyntaxException;
    
    import javax.annotation.Resource;
    
    import org.apache.commons.codec.binary.Base64;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.http.HttpStatus;
    import org.springframework.http.MediaType;
    import org.springframework.http.RequestEntity;
    import org.springframework.http.ResponseEntity;
    import org.springframework.stereotype.Component;
    import org.springframework.web.client.RestTemplate;
    
    import com.alibaba.fastjson.JSONObject;
    import com.hudai.platform.manager.config.BaseEnum;
    import com.hudai.platform.manager.model.BaseResponse;
    
    /**
     * @author WanHongLei
     * @version 创建时间:2019年2月19日 下午3:09:13 类说明
     */
    @Component
    public class RestApi {
        private static final Logger logger = LoggerFactory.getLogger(RestApi.class);
    
        @Resource
        private RestTemplate restTemplate;
        
        @Value("${xjd.applications.url}")
        private String url;
        
        @Value("${clientCredentials}")
        private String clientCredentials;
    
        public BaseResponse<JSONObject> proxy(Object obj, String path) {
            URI uri;
            try {
                uri = new URI(url + path);
            } catch (URISyntaxException e) {
                logger.error("URI构建失败", e);
                return new BaseResponse<>(BaseEnum.FAILED.getCode(), BaseEnum.FAILED.getName());
            }
    
            String base64ClientCredentials = new String(Base64.encodeBase64(clientCredentials.getBytes()));
            
            RequestEntity<Object> requestEntity = RequestEntity.post(uri).header("Authorization", "Basic " + base64ClientCredentials).contentType(MediaType.APPLICATION_JSON)
                    .accept(MediaType.APPLICATION_JSON).body(obj);
            ResponseEntity<JSONObject> responseEntity = restTemplate.exchange(requestEntity, JSONObject.class);
            JSONObject jsonObj = responseEntity.getBody();
            if(responseEntity.getStatusCode() == HttpStatus.OK){
                return new BaseResponse<>(jsonObj);
            }else{
                logger.error("请求失败,errmsg = " + jsonObj.toJSONString());
                return new BaseResponse<>(jsonObj.getIntValue("error"), jsonObj.getString("msg"));
            }
        }
    }

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

  • 相关阅读:
    MySql错误解决方案汇总
    不适合做管理的人zz
    linux 自动执行 crontab学习笔记
    Google Megastore分布式存储技术全揭秘zz
    【算法】n个人围成一圈报数,报到3的退出,下面接着从1开始报,问最后剩下的是谁?
    大数据下的数据分析平台架构zz
    ETL的可扩展性和可维护性zz
    【算法】各种排序算法测试代码
    谈爱情故事,谈观察者模式
    解读设计模式单例模式(Singleton Pattern)
  • 原文地址:https://www.cnblogs.com/Mr-Rocker/p/10402641.html
Copyright © 2011-2022 走看看