php curl常见错误:SSL错误、bool(false)

症状:php
curl调用https出错 
排查方法:在命令行中使用curl调用试试。 
原因:服务器所在机房无法验证SSL证书。 
解决办法:跳过SSL证书检查。 
curl_setopt($ch,
CURLOPT_SSL_VERIFYPEER, false); 

症状:php
curl调用curl_exec返回bool(false),命令行curl调用正常。 
排查方法: 
var_dump(curl_error($ch)); 
返回: 
string(23)
"Empty reply from
server" 
再排查: 
curl_setopt($ch,
CURLOPT_HEADER, true); 
curl_setopt($ch,
CURLOPT_RETURNTRANSFER,
false); 
返回: 
HTTP/1.1
100 Continue 
Connection:
close 
原因:php curl接收到HTTP 100就结束了,应该继续接收HTTP
200 
解决方案: 
curl_setopt($ch,
CURLOPT_HTTPHEADER, array(‘Expect:‘)); 

PHP and cURL:
Disabling 100-continue header 
Published June 15th,
2006 
I‘ve been using cURL (through PHP) to build a sort of
proxy for a project I‘m working on. I need to parse the returned headers (to
recover the HTTP status), so had included a very simple script to do so. It had
worked fine in the past, but for some reason barfed in this case. A closer look
at what was being returned revealed that for some reason, Apache was prepending
the ‘normal‘ headers with an extra response
header: 

HTTP/1.1 100
Continue 

HTTP/1.1 200 OK Date: Fri, 09 Jun 2006
15:23:42 GMT 
Server: Apache 
...A bit
of Googling revealed that this was to do with a header that cURL sends by
default: 

Expect:
100-continue 

…which in turns tells Apache to send the
extra header. I poked around a fair bit but couldn‘t quite find a workable
solution short of manually removing the header in PHP, which seemed a bit
clumsy. Finally, on a hunch I tried this: 

curl_setopt(
$curl_handle, CURLOPT_HTTPHEADER, array( ‘Expect:‘ )
); 

…which basically overrides the original ‘Expect:‘
header with an empty one. 

Hope this helps
someone.

php curl常见错误:SSL错误、bool(false),布布扣,bubuko.com

时间: 2024-10-10 09:58:06

php curl常见错误:SSL错误、bool(false)的相关文章

【php】curl常见的错误号和解释

curl 错误代码列表 CURLE_UNSUPPORTED_PROTOCOL (1) – 您传送给 libcurl 的网址使用了此 libcurl 不支持的协议. 可能是您没有使用的编译时选项造成了这种情况(可能是协议字符串拼写有误,或没有指定协议 libcurl 代码). CURLE_FAILED_INIT (2) – 非常早期的初始化代码失败. 可能是内部错误或问题. CURLE_URL_MALFORMAT (3) – 网址格式不正确. CURLE_COULDNT_RESOLVE_PROXY

cURL标准范例(包括错误输出和详情输出)

//1.初始化 $ch = curl_init(); //2.设置选项,包括URL curl_setopt($ch, CURLOPT_URL, 'http://www.baidu.com'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); //3.执行并获取HTML文档内容 $output = curl_exec($ch); //4.错误判断 if ($output === FA

ssh整合常见的后台错误

ssh整合以及常见的后台错误 摘自网络 jsp和Servlet之间传值出现乱码的解决方案 采用设置字符集的方式 request.setCharacterEncoding("utf-8"); 在web.xml文件里定义编码,同时在CoreFilter类里定义编码为utf-8 <filter> <filter-name>encodingFilter</filter-name> <filter-class>fengke.filter.CoreF

git clone出现SSL错误

在学习git的时候,发现不能使用git clone从github.com下载,报了个ssl错误. Cloning into cancan... error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://

最常见的HTTP错误

1. HTTP 500错误(内部服务器错误)对对HTTP 500错误的定义已经充分证明了这是一个最常见的HTTP错误. 一般来说,HTTP 500 错误就是web服务器发生内部错误时返回的信息. 例如,web服务器过载时将无法正确处理访问请求.根据Google的搜索数据统计,HTTP 500 错误发生机率是404错误的两倍: 2. HTTP 404错误(文件未找到)大多数人都知道这个错误. 当用户试图访问Web服务器(通常是一个网页)上某个实际不存在的资源时,就会发生404错误. 404错误可能

Mac 配置Apache Php编译ssl错误解决

终端 Php编译错误解决 //错误信息 unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /Users/huluo/Downloads/SimplePush/simplepush.php on line 21 出现此错误是Apache需要开启ssl模块 查看版本信息 sudo apachectl -v 启动 sudo apachectl start 打开浏览器输入 “http://l

C语言中常见的内存错误与解决方法

常见的错误 关于内存的一些知识已在内存分配中提及,现记录与分享常见的内存错误与对策. 类型 1:内存未分配成功,却使用了它. 方   法:在使用之前检查指针是否为NULL. 1)当指针p是函数的参数时,在函数入口处用语句assert(p!=NULL)进行断言检查. 2)当使用malloc或new来申请内存时,应该用if(p != NULL)进行防错检查. 类型 2:引用了尚未初始化的指针 原   因:内存的缺省初始值究竟是什么并没有统一的标准,在使用之前都进行初始化. 1)没有初始化的观念. 2

python常见的编程错误

常见的编程错误2.1 试图访问一个未赋值的变量,会产生运行时错误. 常见的编程错误2.2 ==,!=, >=和<=这几个运算符的两个符号之间出现空格,会造成语法错误. 常见的编程错误2.3 !=,<>,  >=和<=这几个运算符中,假如两个字符的顺序弄反了(分别写成=!,><, =>,=<),会造成语法错误. 常见的编程错误2.4 切不可将相等运算符"=="同赋值运算符"="弄混了.其实按正统逻辑,在读的时

常见http代码错误原因及处理

常见的HTTP错误可以分为以下四大类.每一大类又细分为很多类小错误.当您打不开网站或者打开网站报错时首先检查您输入的网站是否有误,检查网络是否有问题或者虚拟主机的DNS是否可以解析.确定没有问题时再看下面http常见错误分析: 1.400错误 问题原因:您所要打开的网页不存在或你填写的身份验证信息不正确. 解决方法:重新尝试依然错误后提交工单. 2.401错误 最常见的出错提示:401 UNAUTHORIZED 问题原因:您试图访问受限页面但未经授权时,网站返回HTTP 401错误.错误登录尝试