• PHP中使用CURL实现Get和Post请求方法


    1.cURL介绍

      cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。本文将介绍 cURL的一些高级特性,以及在PHP中如何运用它。

    2.基本结构

      在学习更为复杂的功能之前,先来看一下在PHP中建立cURL请求的基本步骤:

      (1)初始化

        curl_init()

      (2)设置变量

        curl_setopt()
    。最为重要,一切玄妙均在此。有一长串cURL参数可供设置,它们能指定URL请求的各个细节。要一次性全部看完并理解可能比较困难,所以今天我们只试一下那些更常用也更有用的选项。

      (3)执行并获取结果

        curl_exec()

      (4)释放cURL句柄

        curl_close()

    3.cURL实现Get和Post

    3.1 Get方式实现

     //初始化
      $ch = curl_init();
    
      //设置选项,包括URL
      curl_setopt($ch, CURLOPT_URL, "http://www.jb51.net");
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_HEADER, 0);
    
      //执行并获取HTML文档内容
      $output = curl_exec($ch);
    
      //释放curl句柄
      curl_close($ch);
    
      //打印获得的数据
      print_r($output);
    

    3.2 Post方式实现

      $url = "http://localhost/web_services.php";
      $post_data = array ("username" => "bob","key" => "12345");
    
      $ch = curl_init();
    
      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, $post_data);
    
      $output = curl_exec($ch);
      curl_close($ch);
    
      //打印获得的数据
      print_r($output);
    

    以上方式获取到的数据是json格式的,使用json_decode函数解释成数组。

      (output_array = json_decode()output,true);

      如果使用json_decode($output)解析的话,将会得到object类型的数据。
      

    function httpCurl($url,$data=null)
    {
    	//初始化
    	$ch = curl_init();
    
    	//设置选项,包括URL
    	curl_setopt($ch,CURLOPT_URL,$url);
    	curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    	if(!empty($data)){
    		curl_setopt($ch,CURLOPT_POST,1);
    		curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
    	}
    	$output = curl_exec($ch);
    	curl_close($ch);
    
    	return $output;
    }
    
    当请求https的数据时,会要求证书,这时候,加上下面这两个参数,规避ssl的证书检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    
  • 相关阅读:
    GCC编译器原理(三)------编译原理三:编译过程(3)---编译之汇编以及静态链接【2】
    xmind转为markdown
    XMind破解
    读取字符串中的数字
    "Cannot declare member function ...to have static linkage"错误
    error: cannot bind non-const lvalue reference of type
    (C++ Error: Incompatible types in assignment of ‘char*’ to ‘char [2])
    C++中的map
    17 jQuery阶段_操作样式_操作属性_动画_节点操作
    第一部分:网络多任务_day01_网络编程基础
  • 原文地址:https://www.cnblogs.com/niuben/p/11192702.html
Copyright © 2020-2023  润新知