es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Las cabeceras de petición entrantes están vacías en Codeigniter4.

Estoy desarrollando una aplicación pública para Shopify utilizando la biblioteca PHP oficial de Shopify y Codeigniter4. Me registré para la actualización de productos Webhook en Shopify, que envía una respuesta a uno de mis controladores de Codeigniter.

El problema es que después de procesar la solicitud, veo valores de encabezado vacíos de la siguiente manera:

{“Host”:{},”User-Agent”:{},”Content-Length”:{},”Accept”:{},”Accept-Encoding”:{},”Content-Type”:{},”X-Forwarded-For”:{},”X-Forwarded-Proto”:{},”X-Shopify-Api-Version”:{},”X-Shopify-Hmac-Sha256″:{},”X-Shopify-Product-Id”:{},”X-Shopify-Shop-Domain”:{},”X-Shopify-Topic”:{},”X-Shopify-Webhook-Id”:{}}

el controlador es:

class ProdHook extiende Controlador{
pública función index(){
$headers = esto->solicitud->encabezados();
print_r($headers);
}
}

La $this->solicitud->encabezados() devuelve valores de encabezado vacíos. Pero cuando reemplazo esto con la función nativa de PHP getallheaders(), puedo obtener todos los valores de encabezado sin ningún problema. La salida de getallheaders() es:

{“Host”:”e703.ngrok.io”,”User-Agent”:”Faraday v1.8.0″,”Content-Length”:”2132″,”Accept”:”/”,”Accept-Encoding”:”gzip;q=1.0,deflate;q=0.6,identity;q=0.3″,”Content-Type”:”application/json”,”X-Forwarded-For”:”34.xx.xxx.11″,”X-Forwarded-Proto”:”https”,”X-Shopify-Api-Version”:”2021-10″,”X-Shopify-Hmac-Sha256″:”xxxxxxxx”,”X-Shopify-Product-Id”:”78803xxxxxx922″,”X-Shopify-Shop-Domain”:”xxxxx.myshopify.com”,”X-Shopify-Topic”:”products/update”,”X-Shopify-Webhook-Id”:”uasdhxxxxx-b30c-fdc6e6865609″}

No sé cómo solucionar este problema. Quiero quedarme con Codeigniter4 nativo. Gracias de antemano.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás teniendo un problema con la función $this->request->headers() en Codeigniter4. Está devolviendo valores de encabezado vacíos cuando intentas obtener los encabezados del webhook de Shopify. Has descubierto que usando la función nativa de PHP getallheaders() funciona correctamente y devuelve los valores de encabezado esperados.

    Es posible que la función $this->request->headers() no sea compatible con el webhook de Shopify. Sería recomendable que consideraras utilizar la función nativa de PHP getallheaders() en su lugar.

Comments are closed.