在调用微信的接口的时候发现curl_exec返回值为false,代码如下:
function Post($url, $post_data = '', $timeout = 5){
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
if($post_data != ''){
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
return $file_contents;
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=$access_token";
$post_data = array(
"touser"=>$openid,
"template_id"=>"kZAWYOudTSHNDysmYzavVuw53pkQGRnwR0To075t1hg",
"url"=>"http://www.genghai.com",
"topcolor"=>"#FF0000",
"data"=>array(
"productType"=>array(
'value'=>'活动名',
"color"=>"#173177",
$post_data = json_encode($post_data);
var_dump(Post($url,$post_data));
执行之后输出的结果:
在Post中添加了curl_error($ch)发现:
SSL验证出了问题,跳过SSL证书验证就好了,在Post中添加:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
在调用微信的接口的时候发现curl_exec返回值为false,代码如下:// PHP代码function Post($url, $post_data = '', $timeout = 5){ $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); if(...
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_set
今天使用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...
调用京东接口时,出现$response = null;
但是 生成的带有sign签名的 url地址可以在浏览器中获得接口返回的信息
爬了将近一天的坑,都没有走出来!!最终受高人指点,得到解决.
自己尝试过得解决方法:
1.别人封装的curl方法 无效
2.输出 curl_error 和 cu...
php7 CURLOPT_SSL_VERIFYPEER
禁用后cURL将终止从服务端进行验证。使用CURLOPT_CAINFO选项设置证书使用CURLOPT_CAPATH选项设置证书目录 如果CURLOPT_SSL_VERIFYPEER(默认值为2)被启用,CURLOPT_SSL_VERIFYHOST需要被设置成TRUE否则设置为FALSE。
自cURL 7.10开始默认为TRUE。从cURL...
curl无输出返回空白或者null问题解决
如果发现标题类似问题,很有可能是因为ssl证书问题导致只需要在curl方法中加入以下代码即可:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//禁止 cURL 验证对等证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//是否检测服务器的域名与证书上的是否一致
赠送个比较全的curl代码
* CURL请求函数:支持POST及基本header头信息
header('Content-Type:text/html;charset=utf-8');
$host = "https://**api.*******.com";
$path = "/service/truck";
$method = "GET";
$querys = "origin=116.296972,40.049057&destination=116.322591,39.97554&plateNo=110000&
要发送流式请求并处理流式响应,可以使用PHP的cURL库和流处理函数。
首先,使用cURL库创建一个cURL句柄,并设置选项以便于发送流式请求。例如,要发送一个POST请求,可以使用以下代码:
```php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com/streaming-endpoint');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'data to send');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($ch, $data) {
// 处理响应流数据
echo $data;
return strlen($data);
curl_exec($ch);
curl_close($ch);
上述代码使用`curl_setopt`函数设置了一些选项:
- `CURLOPT_URL` 设置请求的URL
- `CURLOPT_POST` 设置请求方法为POST
- `CURLOPT_POSTFIELDS` 设置POST请求体的数据
- `CURLOPT_RETURNTRANSFER` 设置为false,以便响应流式传输
- `CURLOPT_WRITEFUNCTION` 设置一个回调函数,该函数会在接收到响应流数据时被调用,传入参数为cURL句柄和接收到的数据。函数必须返回已接收的数据长度。
在设置好cURL选项后,执行`curl_exec`函数发送请求。响应数据将通过回调函数传入并被处理。
除了使用回调函数处理响应流数据外,还可以使用PHP的流处理函数来处理响应流。例如,可以使用`fopen`函数打开一个文件流,然后使用`curl_setopt`函数设置`CURLOPT_FILE`选项将响应流写入文件流中:
```php
$file = fopen('response.txt', 'w');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com/streaming-endpoint');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_FILE, $file);
curl_exec($ch);
curl_close($ch);
fclose($file);
上述代码将响应流写入`response.txt`文件中。
以上是使用cURL库结合PHP处理流式请求和响应的基本方法,可以根据实际情况进行修改和扩展。