【PHP原生】CURL请求

curl_setopt所有设置项:

http://php.net/manual/zh/function.curl-setopt.php

封装好的CURL操作类:

https://github.com/wenpeng/curl

CURL发送get/post请求示例

<?php
/**
* 发送CURL请求
* @param $url 请求的URL
* @param $method 请求方法
* @param $params 参数(关联数组形式)
* @param array $header 一维数组的请求头信息(非关联数组)。
* @return bool
*/
function curl($url, $method = ‘GET‘, $params = [], $header = [])
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //将获取的信息以字符串返回,而不是直接输出
    curl_setopt($ch, CURLOPT_URL, $method == "POST" ? $url : $url . ‘?‘ . http_build_query($params));
    //解析参数
    //设置超时时间
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    //如果是https协议,取消检测SSL证书
    if (stripos($url, "https://") !== FALSE) {
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        //CURL_SSLVERSION_TLSv1
        curl_setopt($ch, CURLOPT_SSLVERSION, 1);
    }
    //判断是否设置请求头
    if (count($header) >= 1) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    }
    //通过POST方式提交
    if ($method == "POST") {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
    }
    $data = curl_exec($ch);
    //执行curl操作
    curl_close($ch);
    //关闭curl操作
    return $data;
}
/*$header = [
‘User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6‘,
‘Accept-Language:zh-CN,zh,q=0.8‘
];*/
$url = "http://xxx.com";
$header[] = ‘User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6‘;
$header[] = ‘Accept-Language:zh-CN,zh,q=0.8‘;
//参数
$vars = [‘a‘ => 1, ‘b‘ => ‘lo‘];
$res = curl($url, ‘GET‘, $vars, $header);
var_dump($res);

原文地址:https://www.cnblogs.com/php99/p/7aec9172c2d5ab69f2523b35bdd2b1af.html

时间: 2024-11-18 23:34:23

【PHP原生】CURL请求的相关文章

JS原生Ajax请求

摘录一个JS原生Ajax请求行为,原文地址:http://caibaojian.com/ajax-jsonp.html ajax({ url: "./TestXHR.aspx", //请求地址 type: "POST", //请求方式 data: { name: "super", age: 20 }, //请求参数 dataType: "json", success: function (response, xml) { //

curl 请求https内容,返回空

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$api); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//禁止直接显示获取的内容 重要 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书下同 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // $json = curl_exec($ch);

发送curl请求的函数

//发送curl请求的函数function curl_request($url, $post = false, $data=array(), $https = false){ //使用curl_init初始化一个curl请求 $ch = curl_init($url); //默认为get请求不需要设置请求方式和请求参数 //如果是post请求 if($post){ //设置请求方式 curl_setopt($ch, CURLOPT_POST, true); //设置请求参数 curl_setop

nginx+php下curl请求https报502错

在做公司项目的时候使用了第三方的API接口,且接口采用的是https请求,在本地的wamp集成环境开发测试正常,放到服务器上结果报错 nginx 502 bad gateway.在论坛中爬楼了几天今天终于找到原因,php版本问题: 公司项目线上环境: 服务器安装了wdcp其中nginx是1.4.2版本 php是5.2.17版本 部署项目上去后,怎么运行都报502错,刚开始怀疑是nginx配置问题,百度了许久说请求https需要ssl于是配置了nginx的ssl后问题依旧,无奈只好继续搜索答案.

【转】Javascript原生Ajax请求

什么是 ajaxajax 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取. http 请求 首先需要了解 http 请求的方法(GET 和 POST). GET 用于获取数据.GET 是在 URL 中传递数据,它的安全性低,容量低. POST 用于上传数据.POST 安全性一般,容量几乎无限. ajax 请求 ajax 请求一般分成 4 个步骤. 1.创建 ajax 对象 在创建对象时,有兼容问题: var o

为什么本地开发时使用CURL请求本地URL会卡死

^_^是在WIN下开发.配置是nignxphp mysql 默认时启动phpcgi是 D:\php \php-cgi.exe-b 127.0.0.1:9000 -c D:\phpfind\phpa\php.ini 先看NGINX配置        location ~ \.php(.*)$  {            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_spl

原生ajax请求

原生ajax请求: // ajax四步:创建XMLHttpRequest对象,连接服务器,发送请求,接收响应数据 ajax: function (options) { options = options || {}; options.type = (options.type || "GET").toUpperCase(); options.dataType = options.dataType || 'json'; var xhr = new XMLHttpRequest(); var

curl请求方法

    /**      * CURL请求      * @param $url      * @param array Con      * @param String POST,XML,GET      *      * @return Array | String | XML      */     protected function http_get_contents($url, $con = array(), $type = 'GET')     {         $ch = cu

php(curl请求)测试接口案例

请求测试接口,如下: $data = ['mobilephone'=>'123','password'=>'124']; $result = curlrequest($apiUrl,$data); if($result['statusCode'] == 200){ echo json_encode($result); }else{ echo json_encode($result); } curl请求url方法,如下: /** * @param string $url 请求地址 * @para