PHP使用CURL发送HTTP请求代码

	/**
	 * 发送HTTP请求
	 * @param string $url 请求地址
	 * @param array $data 发送数据
	 * @param string $method 请求方式 GET/POST
	 * @param string $timeout
	 * @param string $proxy
	 * @return Json
	 */
	static function send_request($url, $data, $method = 'POST', $timeout = 30, $proxy = false) {
		$ch = null;
		if('POST' === strtoupper($method)) {
			$ch = curl_init($url);
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_HEADER, 0);
			curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
			curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
// 			if ($refererUrl) {
// 				curl_setopt($ch, CURLOPT_REFERER, $refererUrl);
// 			}
// 			if($contentType) {
// 				curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:'.$contentType));
// 			}
			if(is_string($data)){
				curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
			} else {
				curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
			}
		} else if('GET' === strtoupper($method)) {
			if(is_string($data)) {
				$real_url = $url. (strpos($url, '?') === false ? '?' : ''). $data;
			} else {
				$real_url = $url. (strpos($url, '?') === false ? '?' : ''). http_build_query($data);
			}
			$ch = curl_init($real_url);
			curl_setopt($ch, CURLOPT_HEADER, 0);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
// 			if($contentType) {
// 				curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:'.$contentType));
// 			}
// 			if ($refererUrl) {
// 				curl_setopt($ch, CURLOPT_REFERER, $refererUrl);
// 			}
		} else {
			$args = func_get_args();
			return false;
		}
		if($proxy) {
			curl_setopt($ch, CURLOPT_PROXY, $proxy);
		}
		$ret = curl_exec($ch);
// 		$info = curl_getinfo($ch);
// 		$contents = array(
// 			'httpInfo' => array(
// 					'send' => $data,
// 					'url' => $url,
// 					'ret' => $ret,
// 					'http' => $info
// 			)
// 		);
		curl_close($ch);
		return $ret;
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值