实例
1.数据返回端 data.php
<?php
/**
* @encoding UTF-8
* @author laifei
* @datetime 2017-6-6 13:09:04
* @version 1.0
* @Description
*/
class data {
public function _data(){
$arr = array();
$arr['result'] = '请求成功';
if( $_SERVER['REQUEST_METHOD'] == 'GET'){
$arr['method'] = 'GET';
echo json_encode($arr,true);
}else if( $_SERVER['REQUEST_METHOD'] == 'POST'){
$arr['method'] = 'POST';
echo json_encode($arr,true);
}
}
}
$data = new data();
$data->_data();
die;
2.curl请求方法
<?php
/**
* @encoding UTF-8
* @author laifei
* @datetime 2017-6-6 11:21:10
* @version 1.0
* @Description
*/
class Curl{
protected $url;
public function __construct() {
$this->url = "http://127.0.0.1/study/jiekou/curl/data.php";//data.php所在路径
}
/**
* 通过curl模拟get请求来获取数据
* @return json
*/
public function _get() {
$ch = curl_init();//初始化
//设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
//释放curl句柄
curl_close($ch);
//打印获得的数据
print_r($output);
}
/**
* 通过curl模拟post请求来获取数据
* @return json
*/
public function _post() {
$post_data = array ("username" => "bob","key" => "12345");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($ch, CURLOPT_POST, 1);
// post的变量
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$a = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($a);
}
}
$data = new Curl();
$get = $data->_get();
$post = $data->_post();
3.浏览器访问curl.php返回
{"result":"\u8bf7\u6c42\u6210\u529f","method":"GET"}{"result":"\u8bf7\u6c42\u6210\u529f","method":"POST"}
4.注意因为curl发送请求获取的返回值是浏览器输出值,而你在data.php进行renturn是不会接受到返回值的!