开发者社区> 代码汇> 正文

php中curl返回false的解决办法

简介: 本文介绍一下自己在使用curl中遇到的问题解决办法。希望可以帮助到大家。 原文地址:代码汇个人博客 http://www.codehui.net/info/37.html 首先来看一个封装的curl函数 function request_post($url = '', $param = '').
+关注继续查看

本文介绍一下自己在使用curl中遇到的问题解决办法。希望可以帮助到大家。
原文地址:代码汇个人博客 http://www.codehui.net/info/37.html

首先来看一个封装的curl函数

function request_post($url = '', $param = '') {
    if (empty($url) || empty($param)) {
        return false;
    }
    $postUrl = $url;
    $curlPost = $param;
    $curl = curl_init();//初始化curl
    curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
    curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
    curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
    curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);//提交的参数
    $data = curl_exec($curl);//运行curl
    curl_close($curl);
    
    return $data;
}

调用的时候返回结果为bool(false)
我们在curl_exec函数前面通过curl_error($curl)获取错误也是 string(0) "" 空字符串。

最后发现自己调用的api的接口地址是ssl协议的,然后加上下面两个就可以了

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

如果curl请求的地址中含有空格也会返回false的,这块也要格外注意。


之前还遇到过一个返回false打印curl_error($curl)得到的是如下错误

string(39) "Problem (2) in the Chunked-Encoded data" bool(false)

这个错误的解决办法设置curl使用的HTTP协议版本,就是加上下面这句

//CURL_HTTP_VERSION_1_0 (强制使用 HTTP/1.0)
//CURL_HTTP_VERSION_1_1 (强制使用 HTTP/1.1)。
curl_setopt($curlp, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法
处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler” IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.
1410 0
ASP.NET 拼装Url字符串 需要传中文的解决方案
今天写代码时 发现 要用 一个变量 拼装一个Url字符串   里面 有一个参数包含中文..  使用时  后台Request  得到是乱码!  呵呵 我可不是我想要的效果! 如下所示: /KM/DataPage/KMJS/KnowledgeRetrieval.
765 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
27727 0
junit.framework.AssertionFailedError: No tests found in错误解决办法
public void TestIDcard() throws Exception{} 报错:junit.framework.AssertionFailedError: No tests found in。
1120 0
解决IIS7运行ASP提示错误:An error occurred on the server when processing the URL. Please contact the system administrator
原文:解决IIS7运行ASP提示错误:An error occurred on the server when processing the URL. Please contact the system administrator   ...
1186 0
[转载]关于Flash Professional CS5的代码提示(Code hint)不显示的几种解决办法
原文:http://uh.9ria.com/space.php?uid=68483&do=blog&id=5786         在很多论坛上看到了有人抱怨Flash CS5中,代码提示(Code hint)有时不显示的问题,这个问题可能有很多原因,我整理了几个解决办法,有可能可以帮助到你~ 1. 关于代码提示的快捷键,默认是Ctrl+Spacebar,但是在大部分中文用户的机器上,这是切换输入法的快捷键,这会导致代码提示的快捷键不起作用,所以建议在Edit->Keyboard shortcut中,为代码提示指定另外一个快捷键,例如Ctrl+Alt+Spacebar。
764 0
INSTALL_FAILED_NO_MATCHING_ABIS 的解决办法
INSTALL_FAILED_NO_MATCHING_ABIS 在Android模拟器上安装apk的时候出现 ``` 16:31 Failed to finalize session : INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113 16:31 Session 'app': Error Installing APKs 这个错误提示, 是由于使用了native libraries 。
2977 0
+关注
代码汇
主要分享编程开发、数据库、服务器方面的技术文章和学习心得。 个人博客网站:https://www.codehui.net
5
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载