Je voudrais savoir comment envoyer une demande de publication en boucle et obtenir la page de réponse.
Qu'en est-il quelque chose comme ceci:
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => "http://www.example.com/yourscript.php",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => array(
'field1' => 'some date',
'field2' => 'some other data',
)
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);
// result sent by the remote server is in $result
Pour obtenir une liste des options pouvant être utilisées avec curl, vous pouvez consulter la page de curl_setopt
.
Ici, vous devrez au moins utiliser:
CURLOPT_POST
: vous souhaitez envoyer une demande POST, et non une requête GETCURLOPT_RETURNTRANSFER
: selon que vous voulez que curl_exec
renvoie le résultat de la demande ou le produise simplement.CURLOPT_POSTFIELDS
: Les données qui seront publiées - peuvent être écrites directement sous forme de chaîne, comme une chaîne de requête, ou en utilisant un tableau
Et n'hésitez pas à lire la section curl du manuel PHP ;-)
$url = "http://www.example.com/";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
$data = array(
'username' => 'foo',
'password' => 'bar'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$contents = curl_exec($ch);
curl_close($ch);
essayez celui dans les commentaires: http://php.net/manual/en/curl.examples-basic.php
(mais ajoutez curl_setopt ($ ch, CURLOPT_POST, 1) pour en faire un post au lieu de get)
ou cet exemple: http://php.dzone.com/news/execute-http-post-using-php-cu
Vous devez définir la demande pour publier à l'aide de CURLOPT_POST
et si vous souhaitez transmettre des données, utilisez CURLOPT_POSTFIELDS
:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$data = array(
'username' => 'foo',
'password' => 'bar'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$contents = curl_exec($ch);
curl_close($ch);
<?php
ob_start();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://example.com/student_list.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
echo $response;
?>
Je pense que vous devez ajouter
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $postFields);
Utilisation de données JSON avec CURL
client.php
<?php
$url="http://192.168.44.10/project/server/curl_server.php";
$data=['username'=>'abc','password'=>'123'];
$data = json_encode($data);
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => array('Content-Type: application/json'),
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $data
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);
echo $result; //here you get result like: username: abc and password: 123
?>
curl_server.php
<?php
$data = file_get_contents('php://input');
$Data= json_decode($data,true);
echo 'username: '.$Data['username']." and password: ".$Data['password'];
?>