以下的代码本来是用在thinkPHP中的,测试是没有问题的。
if (!function_exists('http')) { function http($url, $params, $method = "GET", $header = [], $multi = false) { $options = [ CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTPHEADER => $header, ]; switch (strtoupper($method)) { case "GET": $options[CURLOPT_URL] = $url . "?" . http_build_query($params); break; case "POST": $options[CURLOPT_URL] = $url; $params = $multi ? $params : http_build_query($params); $options[CURLOPT_POST] = 1; $options[CURLOPT_POSTFIELDS] = $params; break; default: throw new Exception("仅支持GET和POST"); } $curl_handler = curl_init(); curl_setopt_array($curl_handler, $options); $data = curl_exec($curl_handler); $error = curl_error($curl_handler); curl_close($curl_handler); if ($error) throw new Exception('请求发生错误:' . $error); return $data; } };
在使用上面代码的时候一定要注意,headers
中的代码一定要是字符串的样式的数组,不要是键值对的,headers
在请求的时候,他是把数组按字符串解析的。
后来找到了一个类库(guzzlephp),就放弃了上面的方法。
暂无评论