Enviar solicitação POST em PHP
-
Use o método CURL-less usando as funções
stream_context_create()
efile_get_contents()
para enviar uma solicitação POST em PHP - Use o CURL para enviar a solicitação POST em PHP
- Crie uma função definida pelo usuário que usa o CURL para enviar a solicitação POST em PHP
Apresentaremos um método para enviar uma solicitação POST em PHP usando o método sem CURL com o uso das funções http_build_query()
, stream_context_create()
e file_get_contents()
.
Mostraremos um método para enviar a solicitação POST em PHP usando o CURL. CURL é usado para enviar a solicitação HTTP para o servidor da web. O módulo CURL geralmente é pré-instalado com PHP. Se não estiver instalado, devemos instalá-lo manualmente para enviar a solicitação do servidor usando PHP.
Mostraremos um exemplo para enviar a solicitação POST em PHP usando o CURL criando uma função. Este método é muito semelhante ao segundo método. Ele usa uma função definida pelo usuário para enviar a solicitação. Podemos reutilizar o código fornecendo os diferentes dados de postagem e a URL.
Use o método CURL-less usando as funções stream_context_create()
e file_get_contents()
para enviar uma solicitação POST em PHP
Podemos enviar a solicitação POST em PHP usando as funções como http_build_query()
, stream_context_create()
e file_get_contents()
sem usar o CURL. Podemos usar a função http_build_query()
para criar parâmetros de consulta para enviar a solicitação POST. Podemos criar um array para especificar os cabeçalhos http, métodos e conteúdos. Usamos a função stream_context_create()
para lidar com os dados transmitidos. A função file_get_contents()
lê o conteúdo do url em uma string. Usamos as variáveis globais $_POST
para ler os dados.
Por exemplo, crie a função http_build_query()
e crie um array dentro da função. Crie as chaves name
e id
e os valores Robert
e 1
respectivamente na matriz. Atribua a função com uma variável $postdata
. Crie um array para especificar o método HTTP, cabeçalho e conteúdo. Defina os valores para as chaves method
, header
e content
como POST
, Content-type: application/x-www-form-urlencoded
e a variável $postdata
. Envolva esta matriz dentro de outra matriz http
. Atribua a matriz a uma variável $opts
. Pegue o $opts
como um parâmetro para a função stream_context_create()
e atribua-o a uma variável $context
. Use a função file_get_contents()
e aplique uma URL http://localhost/request.php
como o primeiro parâmetro. Use o valor booleano false
e a variável $context
como o segundo e o terceiro parâmetros. Atribua a função a uma variável $result
e imprima-a. Crie um arquivo PHP request.php
e exiba as chaves name
e id
usando a variável $_POST
.
No exemplo abaixo, name
e id
são os dados a serem postados usando o método POST. O arquivo request.php
lê os parâmetros de consulta usando a variável $_POST
.
Código de exemplo:
# 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'];
?>
Resultado:
Name: Robert
ID: 1
Use o CURL para enviar a solicitação POST em PHP
CURL significa URL do cliente. Podemos usar o CURL para enviar a solicitação POST por meio do script PHP. A versão PHP precisa do módulo curl para executar as diferentes funções curl. Neste método, usamos a função http_build_query()
como no método acima para fazer os parâmetros da consulta. Podemos usar a função curl_init()
para inicializar a conexão CURL no script. Usamos as funções curl_setopt()
com algumas opções como CURLOPT_URL
, CURLOPT_POST
e CURLOPT_POSTFIELDS
. Essas opções definem o URL, solicitam uma solicitação HTTP POST e POST os dados, respectivamente. Podemos usar a função curl_setopt()
para retornar o conteúdo da URL e usar a função curl_exec()
para executar a solicitação POST.
Por exemplo, crie as chaves name
e id
e os valores Wayne
e 2
em um array $fields
. Use o array como o parâmetro na função http_build_query()
e atribua a função com uma variável $postdata
. Abra uma conexão CURL usando a função curl_init()
e atribua-a a uma variável $ch
. Escreva três funções curl_setopt()
e use a variável $ch
como o primeiro parâmetro em todas as três funções. Como o segundo parâmetro nas funções, escreva as opções CURLOPT_URL
, CURLOPT_POST
e CURLOPT_POSTFIELDS
na primeira, segunda e terceira funções, respectivamente. Defina o terceiro parâmetro como http://localhost/request.php
, true
e $postdata
respectivamente nas três funções. Chame uma função curl_setopt()
e use a variável $ch
como o primeiro parâmetro, a opção CURLOPT_RETURNTRANSFER
como o segundo parâmetro e o valor booleano true
como o terceiro parâmetro. Chame a função curl_exec($ch)
da variável $result
e imprima o $result
. Use o mesmo arquivo request.php
do primeiro método.
Código de exemplo:
#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;
?>
Resultado:
Name: Wayne
ID: 2
Crie uma função definida pelo usuário que usa o CURL para enviar a solicitação POST em PHP
Podemos criar um método para obter as entradas de URL e os dados POST para enviar a solicitação POST. Este método também usa o CURL como o segundo método. Ele usa todas as funções curl como antes. Este método visa reutilizar o código para vários URLs e dados.
Por exemplo, crie uma função httpPost()
e tome as variáveis $url
e $data
como argumentos. Abra a conexão curl com a função curl_init()
e tome a variável $url
como parâmetro. Use as três funções curl_setopt()
como no segundo método. Use o método curl_exec()
para executar os dados POST. Crie um array $data
e crie as chaves name
e id
e os valores Scott
e 3
. Chame o método httpPost()
com o http://localhost/request.php
como o URL e o array $data
como os dados. Este método também usa o arquivo request.php
como os dois métodos acima.
Exemplo 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);
?>
Resultado:
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