PHP中使用curl发送get和post请求,需要设置请求头和请求参数,越详细越好,帮我写个例子,谢谢
时间: 2023-07-21 20:49:59 浏览: 115
好的,下面是一个使用curl发送get和post请求的例子:
发送GET请求:
```php
$url = "http://www.example.com/api";
$params = array(
'param1' => 'value1',
'param2' => 'value2'
);
$headers = array(
'Authorization: Bearer token',
'Content-Type: application/json'
);
$url .= '?' . http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
```
发送POST请求:
```php
$url = "http://www.example.com/api";
$data = array(
'param1' => 'value1',
'param2' => 'value2'
);
$headers = array(
'Authorization: Bearer token',
'Content-Type: application/json'
);
$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, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
```
其中,$url 是要请求的地址,$params 是get请求的参数,$data 是post请求的参数,$headers 是请求头部。在发送get请求时,需要将参数拼接在url后面,使用http_build_query()函数可以将数组转为url参数格式。在发送post请求时,需要将参数转为json格式,并设置CURLOPT_POST和CURLOPT_POSTFIELDS两个选项。最后,使用curl_exec()函数发送请求,curl_close()函数关闭curl句柄,$response是请求返回的结果。
阅读全文