Necesito hacer una simple solicitud GET a EC2 Query API con cadena de consulta URL codificada. El protocolo es HTTPS. ¿Cómo enviaría la solicitud con la ayuda de cURL de PHP?cURL de PHP: ¿cómo conectarse a través de HTTPS?
Respuesta
Enviar una solicitud a través de curl, a una URL HTTPS, no es tan difícil por sí mismo, en términos de código PHP.
Algo como esto debería hacer perfectamente bien (Sólo traté de esta porción de código en mi máquina, Windows, PHP 5.3):
$url = 'https://.../...';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
Y envía el resultado bien: lo mismo me sale en mi navegador cuando intento acceder a la URL https://
; a excepción del CSS, por supuesto.
Es posible que desee echar un vistazo a la página del manual de la función curl_setopt
: hay una gran cantidad de opciones, y algunos de ellos podrían ser útiles, en su caso específico :-)
Aquí, Usé CURLOPT_SSL_VERIFYPEER
y CURLOPT_SSL_VERIFYHOST
; no estoy seguro de que los necesite con Amazon, pero tuve que usarlos, de lo contrario, esta parte del código no funcionó, pero eso podría estar relacionado con el hecho de que el certificado que estoy usando es autofirmado ... Pruebe con y sin ellos, y descubrirá rápidamente si los necesita.
Ejemplo:
$url = "https://example.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
$result = curl_exec($ch);
curl_close($ch);
print_r($result);
CURLOPT_SSL_VERIFYPEER
Comprobar si el certificado de pares es válida o inválida/expirado.
opción CURLOPT_SSL_VERIFYHOST citando php manual:
1 para comprobar la existencia de un nombre común en el certificado SSL del otro. 2 a compruebe la existencia de un nombre común y también verifique que coincida con el nombre de host provisto.
¿Podría describir por qué son necesarios SSL_VERIFYPEER y SSL_VERIFYHOST? –
He editado mi respuesta. – rogeriopvl
Si desea configurar CURL para aceptar ciegamente el certificado, puede establecer la opción CURLOPT_SSL_VERIFYPEER en false.
$url = 'https://www.example.com/abc';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Blindly accept the certificate
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
También es posible usar Zend Framework y el adaptador de cURL para ayudar con esta tarea. Detalles here
- 1. PHP CURL y HTTPS
- 2. PHP4: ¿Enviar XML a través de HTTPS/POST a través de cURL?
- 3. PHP https publicar datos XML con cURL
- 4. Obtener el contenido del archivo a través de PHP cURL
- 5. Recuperación de encabezado único en php a través de curl
- 6. Cookie a través de HTTP y HTTPS en PHP
- 7. ¿Qué tan seguro es php curl en ssl/https?
- 8. cURL: de PHP a BASH
- 9. Cómo conectarse a MySQL desde C# a través de SSH
- 10. Convertir línea de comando cURL a PHP cURL
- 11. ¿Cómo puedo enviar SOAP XML a través de Curl y PHP?
- 12. ¿Cómo conectarse a ftp usando Eclipse para desarrolladores de PHP?
- 13. ¿Conectarse a WebDAV con PHP?
- 14. Publicación de anuncios a través de HTTPS
- 15. Conectarse a la base de datos Sharepoint a través de PHP
- 16. Cómo conectarse a SQL Server a través del servidor proxy
- 17. http to https a través de .htaccess
- 18. como Twitter Widgets.js a través de HTTPS
- 19. Conectarse a un servidor MySQL a través de SSH en PHP
- 20. Cómo conectarse a DB, cuando se ejecuta a través de la línea de comando
- 21. Usando HttpURLConnection y HttpsURLConnection para conectarse a un https?
- 22. Conectarse a servicios web HTTPS autofirmados desde Flex
- 23. ¿Cómo usar CURL a través de un proxy?
- 24. Conectarse a un host no certificado a través de FTP a través de TLS/SSL
- 25. Php - Curl de depuración
- 26. PHP Curl CURLOPT_IPRESOLVE
- 27. reintento de cURL en PHP
- 28. ¿cómo puedo publicar objeto JSON a través de cURL en php
- 29. ¿Cómo uso OAuth con PHP y cURL?
url http: // ...? – Sarfraz
@Sarfraz> ergh, maldito copiar y pegar * (He copiado y pegado una URL de mi navegador, sin darme cuenta de que no agregaba la 's' como solía hacerlo en mi servidor anterior) * ;; He editado mi respuesta para corregir eso ;; gracias por el comentario :-) –
eres bienvenido :) – Sarfraz