. 请求接口,这种场景太常见了
. 总计一下 方便使用
php.net curl
$data = http_build_query([
'name' => 'PHP in Action',
'price' => 10.9
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://learn.carsonlius.vip/api/v1/delete");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-HTTP-Method-Override: DELETE'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$ce = curl_exec($ch);
// curl 异常
if (curl_errno($ch)) {
return [
'success' => false,
'status' => 1478,
'msg' => curl_error($ch)
];
}
curl_close($ch);
print_r($ce);
} catch (\Exception $e) {
// TODO do something whatever you want
}
try {
$data = http_build_query([
'name' => 'PHP in Action',
'price' => 10.9
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://learn.carsonlius.vip/api/v1/patch");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-HTTP-Method-Override: PATCH'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$ce = curl_exec($ch);
// curl 异常
if (curl_errno($ch)) {
return [
'success' => false,
'status' => 1478,
'msg' => curl_error($ch)
];
}
curl_close($ch);
print_r($ce);
} catch (\Exception $e) {
// TODO do something whatever you want
}
/**
* 发送post请求
* @param string $url
* @param array $post_data
* @return array|mixed
*/
function curlRequestForPost($url, $post_data)
{
if (is_array($post_data)) {
$post_data = http_build_query($post_data);
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 20s 超时
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($curl, CURLOPT_TIMEOUT, 20);
//设置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
// post参数
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$list_stat = curl_exec($curl);
// curl 出错
if (curl_errno($curl)) {
return [
'success' => false,
'msg' => curl_error($curl)
];
}
if (is_string($list_stat)) {
return json_decode($list_stat, true);
}
curl_close($curl);
return $list_stat;
}
. 这个是和post类似的
/**
* 发送get请求
* @param string $url 请求的Url
* @param array $url_data 请求参数
* @return array|mixed
*/
protected function curlRequestForGet($url, $url_data = [])
{
// 追加参数
if ($url_data && is_array($url_data)) {
$url_data = http_build_query($url_data);
$url .= '?' . $url_data;
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 20s 超时
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($curl, CURLOPT_TIMEOUT, 20);
$list_stat = curl_exec($curl);
// curl 出错
if (curl_errno($curl)) {
return [
'success' => false,
'msg' => curl_error($curl)
];
}
if (is_string($list_stat)) {
return json_decode($list_stat, true);
}
curl_close($curl);
return $list_stat;
}