"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo bloquear las redirecciones usando el cliente GO HTTP?

¿Cómo bloquear las redirecciones usando el cliente GO HTTP?

Publicado el 2025-04-15
Navegar:712

How Can I Prevent Redirects with the Go HTTP Client?

no seguir redireccionamientos con el cliente GO http

cuando interactúa con las API REST que devuelven las respuestas de redirección, modificando el comportamiento del cliente GO HTTP para ignorar las redireccionamientos para los casos de uso específicos. Aquí hay una forma simple y efectiva de lograr esta funcionalidad:

la función checkedirect de http.client tiene prioridad sobre el comportamiento predeterminado de seguimiento de redirección. Al personalizar esta función, puede determinar cuándo deben seguirse las redirecciones. Para evitar la redirección automática, proporcione una implementación alternativa:

CheckRedirect: func(req *http.Request, via []*http.Request) error {
  return http.ErrUseLastResponse
}

Esta configuración informa el paquete HTTP para evitar operaciones de redirección. Devuelve http.erruselastresponse, que instruye al paquete para utilizar la última respuesta con el cuerpo aún accesible.

En su ejemplo, actualice la configuración del cliente de la siguiente manera:

client := &http.Client{
  CheckRedirect: func(req *http.Request, via []*http.Request) error {
    return http.ErrUseLastResponse
  },
}

estableciendo esta configuración, su script establecerá con éxito una conexión con el punto final, recuperará el encabezado de ubicación HTTP para su posterior procesamiento y evitará ser redirigido al nuevo recurso. Este método proporciona un enfoque más elegante y sin errores en comparación con soluciones alternativas que forzan el manejo de errores.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3