• 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

  • 相关阅读:
    jquery.autocomplete 使用解析
    《SEO实战密码》
    Thinkphp 生成的验证码不显示问题解决
    css去除li的小圆点
    css隐藏input边框阴影
    HBuilde 申请密钥证书
    请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径
    js 判断屏幕下拉上滑操作
    gis 从WGS84转百度
    GIS个坐标系转换
  • 原文地址:https://www.cnblogs.com/Mr-Rocker/p/10402641.html
Copyright © 2020-2023  润新知