Enviar solicitud POST en PHP
-
Use el método sin CURL usando las funciones
stream_context_create()
yfile_get_contents()
para enviar una solicitud POST en PHP - Utilice el CURL para enviar la solicitud POST en PHP
- Cree una función definida por el usuario que utilice CURL para enviar la solicitud POST en PHP
Introduciremos un método para enviar una solicitud POST en PHP usando el método CURL-less con el uso de las funciones http_build_query()
, stream_context_create()
y file_get_contents()
.
Le mostraremos un método para enviar la solicitud POST en PHP usando CURL. CURL se utiliza para enviar la solicitud HTTP al servidor web. El módulo CURL generalmente está preinstalado con PHP. Si no se ha instalado, debemos instalarlo manualmente para enviar la solicitud del servidor mediante PHP.
Le mostraremos un ejemplo para enviar la solicitud POST en PHP usando CURL creando una función. Este método es muy similar al segundo método. Utiliza una función definida por el usuario para enviar la solicitud. Podemos reutilizar el código que proporciona los diferentes datos de la publicación y la URL.
Use el método sin CURL usando las funciones stream_context_create()
y file_get_contents()
para enviar una solicitud POST en PHP
Podemos enviar la solicitud POST en PHP usando funciones como las funciones http_build_query()
, stream_context_create()
y file_get_contents()
sin usar el CURL. Podemos usar la función http_build_query()
para crear parámetros de consulta para enviar la solicitud POST. Podemos crear un array para especificar los encabezados http, los métodos y el contenido. Usamos la función stream_context_create()
para manejar los datos transmitidos. La función file_get_contents()
lee el contenido de la URL en una cadena. Usamos las variables globales $_POST
para leer los datos.
Por ejemplo, cree la función http_build_query()
y cree un array dentro de la función. Cree las claves name
e id
y los valores Robert
y 1
respectivamente en el array. Asigne la función con una variable $postdata
. Cree un array para especificar el método HTTP, el encabezado y el contenido. Establezca los valores de las claves method
, header
y content
como POST
, Content-type: application/x-www-form-urlencoded
y la variable $postdata
. Envuelva esta matriz dentro de otra matriz http
. Asigne el array a una variable $opts
. Tome $opts
como parámetro de la función stream_context_create()
y asígnelo a una variable $context
. Utilice la función file_get_contents()
y aplique una URL http://localhost/request.php
como primer parámetro. Utilice el valor booleano false
y la variable $context
como segundo y tercer parámetro. Asigne la función a una variable $result
e imprímala. Cree un archivo PHP request.php
y repita las claves name
e id
usando la variable $_POST
.
En el siguiente ejemplo, name
e id
son los datos que se publicarán mediante el método POST. El archivo request.php
lee los parámetros de consulta usando la variable $_POST
.
Código de ejemplo:
# php 7.*
<?php
$postdata = http_build_query(
array(
'name' => 'Robert',
'id' => '1'
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://localhost/request.php', false, $context);
echo $result;
?>
# php 7.*
<?php
echo "Name: ". $_POST['name']. "<br>";
echo "ID: ". $_POST['id'];
?>
Producción :
Name: Robert
ID: 1
Utilice el CURL para enviar la solicitud POST en PHP
CURL son las siglas de Client URL. Podemos usar CURL para enviar la solicitud POST a través del script PHP. La versión de PHP necesita el módulo curl para ejecutar las diferentes funciones de curl. En este método, usamos la función http_build_query()
como en el método anterior para hacer los parámetros de consulta. Podemos usar la función curl_init()
para inicializar la conexión CURL en el script. Usamos las funciones curl_setopt()
con algunas opciones como CURLOPT_URL
, CURLOPT_POST
y CURLOPT_POSTFIELDS
. Estas opciones establecen la URL, solicitan una solicitud HTTP POST y POST los datos, respectivamente. Podemos usar la función curl_setopt()
para devolver el contenido de la URL y usar la función curl_exec()
para ejecutar la solicitud POST.
Por ejemplo, cree las claves name
e id
y los valores Wayne
y 2
en un array $ campos
. Utilice el array como parámetro en la función http_build_query()
y asigne la función con una variable $postdata
. Abra una conexión CURL usando la función curl_init()
y asígnela a una variable $ch
. Escriba tres funciones curl_setopt()
y use la variable $ch
como primer parámetro en las tres funciones. Como segundo parámetro de las funciones, escriba las opciones CURLOPT_URL
, CURLOPT_POST
y CURLOPT_POSTFIELDS
en la primera, segunda y tercera funciones, respectivamente. Establezca el tercer parámetro como http://localhost/request.php
, true
y $postdata
respectivamente en las tres funciones. Llame a una función curl_setopt()
y utilice la variable $ch
como primer parámetro, la opción CURLOPT_RETURNTRANSFER
como segundo parámetro y el valor booleano true
como tercer parámetro. Llame a la función curl_exec($ch)
desde la variable $result
e imprima el $result
. Utilice el mismo archivo request.php
del primer método.
Código de ejemplo:
#php 7.x
<?php
$fields = [
'name' => 'Wayne',
'id' => 2,
];
$postdata = http_build_query($fields);
$ch = curl_init()
curl_setopt($ch,CURLOPT_URL, 'http://localhost/request.php');
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo $result;
?>
Producción :
Name: Wayne
ID: 2
Cree una función definida por el usuario que utilice CURL para enviar la solicitud POST en PHP
Podemos crear un método para tomar las entradas de URL y los datos POST para enviar la solicitud POST. Este método también utiliza CURL como segundo método. Utiliza todas las funciones de curl como antes. Este método tiene como objetivo reutilizar el código para múltiples URL y datos.
Por ejemplo, cree una función httpPost()
y tome las variables $url
y $data
como argumentos. Abra la conexión curl con la función curl_init()
y tome la variable $url
como parámetro. Utilice las tres funciones curl_setopt()
como en el segundo método. Utilice el método curl_exec()
para ejecutar los datos POST. Cree un array $data
y cree las claves name
e id
y los valores Scott
y 3
. Llame al método httpPost()
con http://localhost/request.php
como URL y el array $data
como datos. Este método también usa el archivo request.php
como los dos métodos anteriores.
Ejemplo de código:
#php 7.x
<?php
function httpPost($url, $data){
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
}
$data = [
'name' => 'Scott',
'id' => 3
];
httpPost('http://localhost/request.php', $data);
?>
Producción :
Name: Scott
ID: 3
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn