curl模拟提交.php /** * curl 方式模拟get,post 提交 * */ /** * get提交 * * @author gaoxianlei * @date 2017/07/24 * * @param string $url 地址 * @param array $params 参数 * @param string $cookie cookie * @param boolean $raw 是否
/**
* curl 方式模拟get,post 提交
*
*/
/**
* get提交
*
* @author gaoxianlei
* @date 2017/07/24
*
* @param string $url 地址
* @param array $params 参数
* @param string $cookie cookie
* @param boolean $raw 是否解码json
*
* @return string
*/
private function _get_json_data($url = '', $params = [], $raw = false, $cookie = '')
{
$paramsString = $params ? http_build_query($params, '', '&', 2) : '';
$fullUrl = $url . '?' . $paramsString;
return $this->_http_request($fullUrl, [], $raw, $cookie);
}
/**
* post提交
*
* @author gao
* @date 2017/07/24
*
* @param string $url 地址
* @param array $params 参数
* @param string $cookie cookie
* @param boolean $raw 是否解码json
*
* @return string
*/
private function _post_json_data($url = '', $params = [], $raw = false, $cookie = '')
{
return $this->_http_request($url, $params, $raw, $cookie);
}
/**
* curl 模拟提交
*
* @author gao
* @date 2017/07/24
*
* @param string $url 访问的URL
* @param array $post post数据(不填则为GET)
* @param string $cookie 提交的$cookies
* @param boolean $raw 是否解码json
*
* @return string
*/
private function _http_request($url, $post = [], $raw = false, $cookie = '')
{
//Initiate cURL request and send back the result
$ch = curl_init();
if (!$post) {
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
if ($post) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
if ($cookie) {
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
}
$result = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code == 200) {
return $raw ? json_decode($result, true) : $result;
}
return false;
}
