php的curl怎么设置header中参数,cookie中的参数?

来源:互联网 发布:机加工成本核算软件 编辑:程序博客网 时间:2024/06/10 03:21
$GLOBALS['config']= array(
    'ak'=>'8xxxxxxxx3822212fexxxx',
    'sk'=>'caxxxxxxx6d16c1exxxxxx'
);
$host = 'http://api.yi-xxy.com';

$cookie = 'yiplay_session='.'b415dbc8201551b99cae61d3778254544bf10bc0';  //实际上这个cookie 是sessionid

function request_api_post($url,$params=''){
global $host;
global $cookie;
    $request_url=  $host.$url;  //注意$url 不要加斜杠


    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$request_url);


    if($params){
    curl_setopt($ch,CURLOPT_POST,true);
    curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($params));  //注意有的服务器给数组也能接收post参数,有的必须要http_build_query,感觉这些服务web服务版本很低很老


    }
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);


    //签名header


    if(!empty($params)){
        sort($params,SORT_STRING);
        $post = implode('',$params);
    }else{
        $post = '';
    }




    $headers=array(
        'sign:'.md5($GLOBALS['config']['sk'].$post)
    );





    curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
    curl_setopt($ch,CURLOPT_TIMEOUT,5);
curl_setopt($ch, CURLOPT_COOKIE,$cookie);


    parse_url($url);


    $txt = curl_exec($ch);
    var_dump($txt);
echo '<hr/>++++++++++++++';


    $errno = curl_errno($ch);
    $error = curl_error($ch);
    $info = curl_getinfo($ch);
    var_dump($errno);
    var_dump($error);
    var_dump($info);
echo  '----------';


    $json = json_decode($txt,true);


    if(!$json){


        exit('接口返回格式错误');


    }


    if(curl_errno($ch)){


        exit(curl_error($ch));


    }

}


function request_api_get($url,$params=''){
global $host;
global $cookie;
    $request_url=  $host.$url;
    //$request_url='z.sale.com'.$url;  //注意不要加斜杠


    $ch = curl_init();

if(!empty($params)){
$request_url .= '?'.http_build_query($params);
}
    curl_setopt($ch,CURLOPT_URL,$request_url);


    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);


    //签名header
if(!empty($params)){
        sort($params,SORT_STRING);


         $post = implode('',$params);


    }else{
        $post = '';
    }



    $headers=array(
        'sign:'.md5($GLOBALS['config']['sk'].$post)
    );



    curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
    curl_setopt($ch,CURLOPT_TIMEOUT,3);
curl_setopt($ch, CURLOPT_COOKIE,$cookie);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);


    parse_url($url);


    $txt = curl_exec($ch);
    echo $txt;


    $json = json_decode($txt,true);


    if(!$json){


        exit('接口返回格式错误');


    }


    if(curl_errno($ch)){


        exit(curl_error($ch));


    }




}