test1.php
$url = "http://localhost/uctest2.php"; $data = array ( "key1" => "value1", "key2" => "value2", "key3" => "value3" ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data);// data是数组格式 $output = curl_exec($ch); if ($output === false) { echo 'Curl error: ' . curl_error($ch); } else { $info = curl_getinfo($ch); echo 'Took ' . $info['total_time'] . ';seconds to send a request to ' . $info['url']; echo '操作完成没有任何错误'; } curl_close($ch); var_dump($output); exit;
$url = "http://localhost/uctest2.php"; $post_data = array ( "key1" => "value1", "key2" => "value2", "key3" => "value3" ); $data = trim(json_encode($post_data)); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data);// data 是json格式 $output = curl_exec($ch); if ($output === false) { echo 'Curl error: ' . curl_error($ch); } else { $info = curl_getinfo($ch); echo 'Took ' . $info['total_time'] . ';seconds to send a request to ' . $info['url']; echo '操作完成没有任何错误'; } curl_close($ch); var_dump($output); exit;
$url = "http://localhost/uctest2.php"; $data = "key1=value1&key2=value2&key3=value3"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $url . $data);// data 是字符串 $output = curl_exec($ch); if ($output === false) { echo 'Curl error: ' . curl_error($ch); } else { $info = curl_getinfo($ch); echo 'Took ' . $info['total_time'] . ';seconds to send a request to ' . $info['url']; echo '操作完成没有任何错误'; } curl_close($ch); var_dump($output); exit;
<?php var_dump($_POST); // data 是数组和字符串格式 ?>
// 接收json 数据的方式
<?php // 模拟非post、get以外的传输方式 $myFile = "result.log"; $fh = fopen($myFile, 'a') or die("can't open file"); $stringData = date("Y-m-d H:i:s")."\n"; fwrite($fh, $stringData); $stringData = file_get_contents('php://input'); fwrite($fh, $stringData); fclose($fh); ?>
CURLOPT_POSTFIELDS全部数据使用HTTP协议中的"POST"操作来发送。要发送文件,在文件名前面加上@前缀并使用完整路径。这个参数可以通过urlencoded后的字符串类似'para1=val1¶2=val2&...'或使用一个以字段名为键值,字段数据为值的数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data。