web-dev-qa-db-ja.com

php curl:簡単な投稿リクエストとページの取得例が必要です

Curlで投稿要求を送信し、応答ページを取得する方法を知りたいです。

32
ufk

このようなものはどうですか:

$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_RETURNTRANSFERcurl_execリクエストの結果を返すか、単に出力します。
  • CURLOPT_POSTFIELDS:投稿されるデータ-クエリ文字列のような文字列として、または配列を使用して直接書き込むことができます


そして、PHP manual ;-)の curlセクション を読むことをheしないでください。

62
Pascal MARTIN
$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);
4
areeb

コメントにあるものを試してください: 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

2
user262976

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);
2
Tatu Ulmanen
  <?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;
  ?>
1

追加する必要があると思います

curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $postFields);
1
Sinan

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'];
?>
0