• 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

  • 相关阅读:
    搭建yum本地仓库
    VMware中安装Windows_Server_2008_R2
    2020.03.21 JOI春令营&A组 总结
    2020.03.18【NOIP提高组】模拟A 组 总结
    2020.03.14【NOIP提高组】模拟A 组 总结
    2020NOI在线能力测试【入门组】跑步
    价值备注
    Dockers 学习
    给网站配置免费的HTTS证书
    熟悉pyspider的装饰器
  • 原文地址:https://www.cnblogs.com/Mr-Rocker/p/10402641.html
Copyright © 2020-2023  润新知