php curl 的一些常用的配置项

php curl 的一些常用的配置项

<?php
/**
 * php curl 常用
 * @var string
 */
$url = "http://localhost/curl.php";

$request_header = array(
    // "Content-Type: application/xlm",
    // "Content-Type: application/json",
    //"Content-Type: application/x-www-form-urlencode",
    //"Content-Type: multipart/form-data",
    // "Content-Length: " . mb_strlen(),
);

// 请求体 可以附加文件
$form_data = array(
    'username' => 'big_cat',
    'password' => 'big_cat',
    // 'file_1' => new \CURLFile('./file_path'),
    // 'file_2' => new \CURLFile('./file_path'),
    // 'file_3' => new \CURLFile('./file_path')
);

//构建 request form body
$form_data_urlencode = http_build_query($form_data);

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

/**
 * baisc auth 认证
 */
// curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
// curl_setopt($curl, CURLOPT_USERPWD, "username:password");

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_HTTPHEADER, $request_header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //返回数据而不是直接输出

/**
 * 如果传入的是数组则会将请求设为 Content-Type: application/json 的请求
 * 后台是无法直接使用 $_POST 数据获取到数据的 需要配合 php://input
 * 可以使用 http_build_query 将 key => val 构建成 key=val&key=val形式
 */
curl_setopt($curl, CURLOPT_POSTFIELDS, $form_data_urlencode); //表单数据

// $cookie_jar = tempnam("/path", "cookie_");
// curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar); // 把返回来的cookie信息保存在$cookie_jar文件中
// curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_jar); // 把返回来的cookie信息保存在$cookie_jar文件中

curl_setopt($curl, CURLOPT_HEADER, false); //是否获取头信息
curl_setopt($curl, CURLOPT_NOBODY, false); //是否不获取body体数据

/**
 * 如何使用 https 请求也很简单 配合证书即可
 */
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 不校验https证书
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 不校验https证书

curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1'); // 请求代理
curl_setopt($curl, CURLOPT_REFERER, "http://www.baidu.com"); // 请求referer

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); // 是否可以重定向请求
curl_setopt($curl, CURLOPT_AUTOREFERER, true); // 重定向时自动更新 referer
curl_setopt($curl, CURLOPT_MAXREDIRS, 1); // 最大重定向次数 302跳转最多一次

curl_setopt($curl, CURLOPT_TIMEOUT, 5); // 超时时间 5s

$response = curl_exec($curl); //返回结果

//这里的错误是指请求连接建立的错误 而非你的请求错误或业务错误 
if ($error_msg = curl_error($curl)) {// 错误信息 
    echo $error_msg;
} else {
    $status       = curl_getinfo($curl, CURLINFO_HTTP_CODE); //请求结果状态码
    $content_type = curl_getinfo($curl, CURLINFO_CONTENT_TYPE); //请求结果类型
}

curl_close($curl);

echo $response;

 

转载于:https://my.oschina.net/sallency/blog/1525580

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值