如果发现标题类似问题,很有可能是因为ssl证书问题导致只需要在curl方法中加入以下代码即可:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
* CURL请求函数:支持POST及基本header头信息定义
* @param [api_url:目标url | post_data:post参数 | header:头信息数组 | referer_url:来源url]
* @return [code:状态码(200执行成功、400执行异常) | data:数据]
function curl_request($api_url, $post_data = [], $header = [], $referer_url = ''){
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $api_url);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt( $ch, CURLOPT_TIMEOUT, 5);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_MAXREDIRS, 10);
curl_setopt( $ch, CURLOPT_AUTOREFERER, 1);
curl_setopt( $ch, CURLOPT_HTTPHEADER, $header);
curl_setopt( $ch, CURLOPT_ENCODING, "");
curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" );
$referer_url && curl_setopt( $ch, CURLOPT_REFERER, $referer_url);
if($post_data && is_array($post_data)){
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$code = 200;
$data = curl_exec( $ch );
if (curl_errno($ch)) {
$code = 400;
$data = curl_error($ch);
curl_close( $ch );
return ['code' => $code, 'data' => $data];
调用京东接口时,出现$response = null;
但是 生成的带有sign签名的 url地址可以在浏览器中获得接口返回的信息
爬了将近一天的坑,都没有走出来!!最终受高人指点,得到解决.
自己尝试过得解决方法:
1.别人封装的curl方法 无效
2.输出 curl_error 和 cu...
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,在"标准输出"(stdout)上显示。它支持多种协议
查看网站源码
直接在curl命令后加上网址,就可以看到网页源码
curl URL
如果要把这个网页保存下来,可以使用-o参数
curl -o [文件名] URL
有的网址是自
今天使用curl——get请求阿里的接口出现了返回空白问题,但是curl是我之前封装的函数,使用很多次了都没有问题,然后网上也没找到解决方法,后面打印了head查看发现是提示
HTTP/1.1 505 HTTP Version Not Supported
Server: Tengine/2.1.0
Date: Fri, 21 Jun 2019 01:29:50 GMT
Transfer...
成功时返回 TRUE,
或者在失败时返回 FALSE。
然而,如果 CURLOPT_RETURNTRANSFER选项被设置,函数执行成功时会返回执行的结果,失败时返回 FALSE 。
很多时候 CURLOPT_RETURNTRANSFER 没加导致只返回 0 / 1
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 01 Dec 2020 08:01:30 GMT
Connection: close
仔细一看发现返回但格式是gzip
所以要想显示请求体就要加上"–compressed"参数