Curlで投稿要求を送信し、応答ページを取得する方法を知りたいです。
このようなものはどうですか:
$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
curlで使用できるオプションのリストについては、 curl_setopt
。
ここでは、少なくとも使用する必要があります:
CURLOPT_POST
:GETではなくPOSTリクエストを送信する場合)CURLOPT_RETURNTRANSFER
:curl_exec
リクエストの結果を返すか、単に出力します。CURLOPT_POSTFIELDS
:投稿されるデータ-クエリ文字列のような文字列として、または配列を使用して直接書き込むことができます
そして、PHP manual ;-)の curlセクション を読むことをheしないでください。
$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);
コメントにあるものを試してください: http://php.net/manual/en/curl.examples-basic.php
(ただし、curl_setopt($ ch、CURLOPT_POST、1)を追加して、getではなく投稿にします)
またはこの例: http://php.dzone.com/news/execute-http-post-using-php-c
CURLOPT_POST
を使用して投稿するようにリクエストを設定する必要があり、それを使用してデータを渡す場合は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;
?>
追加する必要があると思います
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $postFields);
JSONデータと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'];
?>