PHP 发送POST请求

cURL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如:HTTP,FTP。TELNET等。

使用curl步骤:

1.初始化 $ch = curl_init()
2.设置参数 curl_setopt($ch,参数)
3.执行curl_exec($ch)
4.关闭curl_close($ch)
输出错误信息:curl_error($ch)

设置参数

CURLOPT_URL 请求的url地址
CURLOPT_RETURNTRANSFER 捕获内容,但不输出
CURLOPT_HEADER 设置头信息
CURLOPT_POST 模拟发送POST请求
CURLOPT_POSTFIELDS 发送POST请求时传递的参数

function http_post_data($url, $data) {  
       
       //将数组转成json格式
       $data = json_encode($data);
       
       //1.初始化curl句柄
        $ch = curl_init(); 
        
        //2.设置curl
        //设置访问url
        curl_setopt($ch, CURLOPT_URL, $url);  
        
        //捕获内容,但不输出
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        
        //模拟发送POST请求
        curl_setopt($ch, CURLOPT_POST, 1);  
        
        //发送POST请求时传递的参数
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  
        
        //设置头信息
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(  
            'Content-Type: application/json; charset=utf-8',  
            'Content-Length: ' . strlen($data))  
        );  

        //3.执行curl_exec($ch)
        $return_content = curl_exec($ch);  
        
        //如果获取失败返回错误信息
        if($return_content === FALSE){ 
            $return_content = curl_errno($ch);
        }
        
        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
        
        //4.关闭curl
        curl_close($ch);
        
        return array($return_code, $return_content);  
    }  
  
$url  = "http://www.tuling123.com/openapi/api";  
$data = array("key"=>"KEY",
    "info"=>"明天天气怎么样?",
    "loc"=>"满洲里市");   
  
list($return_code, $return_content) = http_post_data($url, $data);  


你可能感兴趣的:(PHP,编程)