<?php
function httpRequest ( $url , $method , $postfields = null , $headers = array ( ) , $debug = false )
{
$method = strtoupper ( $method ) ;
$ci = curl_init ( ) ;
curl_setopt ( $ci , CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_0 ) ;
curl_setopt ( $ci , CURLOPT_USERAGENT , "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0" ) ;
curl_setopt ( $ci , CURLOPT_CONNECTTIMEOUT , 60 ) ;
curl_setopt ( $ci , CURLOPT_TIMEOUT , 7 ) ;
curl_setopt ( $ci , CURLOPT_RETURNTRANSFER , true ) ;
switch ( $method ) {
case "POST" :
curl_setopt ( $ci , CURLOPT_POST , true ) ;
if ( ! empty ( $postfields ) ) {
$tmpdatastr = is_array ( $postfields ) ? http_build_query ( $postfields ) : $postfields ;
curl_setopt ( $ci , CURLOPT_POSTFIELDS , $tmpdatastr ) ;
}
break ;
default :
curl_setopt ( $ci , CURLOPT_CUSTOMREQUEST , $method ) ;
break ;
}
$ssl = preg_match ( '/^https:\/\//i' , $url ) ? TRUE : FALSE ;
curl_setopt ( $ci , CURLOPT_URL , $url ) ;
if ( $ssl ) {
curl_setopt ( $ci , CURLOPT_SSL_VERIFYPEER , FALSE ) ;
curl_setopt ( $ci , CURLOPT_SSL_VERIFYHOST , FALSE ) ;
}
curl_setopt ( $ci , CURLOPT_FOLLOWLOCATION , 1 ) ;
curl_setopt ( $ci , CURLOPT_MAXREDIRS , 2 ) ;
curl_setopt ( $ci , CURLOPT_HTTPHEADER , $headers ) ;
curl_setopt ( $ci , CURLINFO_HEADER_OUT , true ) ;
$response = curl_exec ( $ci ) ;
$requestinfo = curl_getinfo ( $ci ) ;
$http_code = curl_getinfo ( $ci , CURLINFO_HTTP_CODE ) ;
if ( $debug ) {
echo "=====post data======\r\n" ;
var_dump ( $postfields ) ;
echo "=====info===== \r\n" ;
print_r ( $requestinfo ) ;
echo "=====response=====\r\n" ;
print_r ( $response ) ;
}
curl_close ( $ci ) ;
return $response ;
}
function getRandChar ( $length )
{
$str = null ;
$strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz" ;
$max = strlen ( $strPol ) - 1 ;
for ( $i = 0 ; $i < $length ; $i ++ ) {
$str . = $strPol [ rand ( 0 , $max ) ] ;
}
return $str ;
}