Estoy creando un cliente de servicio web REST en PHP y en este momento estoy usando curl para hacer solicitudes al servicio.
¿Cómo uso curl para hacer solicitudes autenticadas (http básica)? ¿Tengo que agregar los encabezados yo mismo?
php
rest
curl
basic-authentication
blanco
fuente
fuente
CURLOPT_USERPWD
básicamente envía la base64 de lauser:password
cadena con el encabezado http como a continuación:Además
CURLOPT_USERPWD
, también puede usar laHTTP-Request
opción de encabezado, como a continuación con otros encabezados:fuente
CURLOPT_USERPWD
funcionó para mí.La forma más simple y nativa es usar CURL directamente.
Esto funciona para mi:
fuente
A diferencia de SOAP, REST no es un protocolo estandarizado, por lo que es un poco difícil tener un "Cliente REST". Sin embargo, dado que la mayoría de los servicios RESTful usan HTTP como su protocolo subyacente, debería poder usar cualquier biblioteca HTTP. Además de cURL, PHP tiene estos a través de PEAR:
HTTP_Request2
que reemplazó
HTTP_Request
Una muestra de cómo hacen HTTP Basic Auth
También son compatibles con Digest Auth
fuente
Si el tipo de autorización es Autenticación básica y los datos publicados son json, haga lo siguiente
fuente
Yahoo tiene un tutorial sobre cómo hacer llamadas a sus servicios REST usando PHP:
Hacer Yahoo! Servicio web Llamadas REST con PHP
No lo he usado yo mismo, pero Yahoo es Yahoo y debería garantizar al menos algún nivel de calidad. Sin embargo, no parecen cubrir las solicitudes PUT y DELETE.
Además, las notas contribuidas por el usuario a curl_exec () y otras contienen mucha buena información.
fuente
Solo necesita especificar las opciones CURLOPT_HTTPAUTH y CURLOPT_USERPWD:
O especifique el encabezado:
Ejemplo de Guzzle:
Ver https://github.com/andriichuk/php-curl-cookbook#basic-auth
fuente
El muy activo Guzzle de Michael Dowling es un buen camino a seguir. Además de la elegante interfaz, las llamadas asíncronas y el cumplimiento de PSR, hace que los encabezados de autenticación para las llamadas REST sean simples:
Ver los documentos .
fuente
Para aquellos que no quieren usar curl:
fuente
Existen múltiples marcos REST por ahí. Recomiendo encarecidamente buscar en Slim mini Framework para PHP
Aquí hay una lista de otros.
fuente