Configure manualmente la información del encabezado de la solicitud al llamar a la interfaz de simulación

Un escenario de demanda:

Algunos parámetros en nuestro servicio de proveedor se obtienen del encabezado de la solicitud, pero cuando el servicio al consumidor llama a la interfaz fingida, no hay parámetros requeridos por el proveedor en el encabezado de la solicitud de la interfaz. En este momento, queremos configurar manualmente algunos parámetros para ¡La interfaz fingida!

Dos soluciones

2.1 Agregar la anotación @RequestHeader a la interfaz de simulación

Este método consiste en obtener los parámetros requeridos antes de ejecutar el método y luego pasar los valores recuperados como parámetros al método que se ejecutará.

La interfaz Feign llamada por este método debe modificarse. Agregue una anotación con @RequestHeader en los parámetros. Esta anotación significa que las variables se colocan en el encabezado de la solicitud en lugar de los parámetros de la solicitud o el cuerpo de la solicitud.

Insertar descripción de la imagen aquí

2.2 El proveedor normalmente obtiene parámetros del encabezado de la solicitud.

    @GetMapping("getName")
    public Void getMerchantCompareInfo(@RequestParam(value = "name") String name,HttpServletRequest request) {
    
    
        String token = request.getHeader("token");
        String token2 = request.getHeader("X-TOKEN");
        System.out.println("token = " + token);
        System.out.println("X-TOKEN = " + token2);
        return null;
    }

2. 3 consumidores transfieren parámetros manualmente

    @GetMapping("getName")
    public Void getMerchantCompareInfo() {
    
    
        feignParamApi.getMerchantCompareInfo("name","12344");
        return null;
    }

2.4 Pruebas

Insertar descripción de la imagen aquí
Si especificamos el nombre del parámetro del encabezado de la solicitud en @RequestHeader, también debemos usar el nombre correspondiente al recuperarlo.

Enlace de referencia
Problemas de configuración/transmisión del encabezado de solicitud fingido (encabezado de configuración del método sincrónico/encabezado de configuración del método asincrónico)

Supongo que te gusta

Origin blog.csdn.net/weixin_43811057/article/details/133066180
Recomendado
Clasificación