问题
本地上正常,在服务器上用php curl 去访问接口。遇到了头疼的问题:
curl_error 输出的是:
Empty reply from server
服务器 php版本
PHP 7.2.24-0ubuntu0.18.04.10 (cli) (built: Oct 25 2021 17:47:59) ( NTS )
代码
客户端
<?php
$curl=curl_init();
curl_setopt($curl, CURLOPT_URL, trim('http://127.0.0.1:9999/'));
curl_setopt($curl, CURLOPT_HTTP_VERSION ,CURL_HTTP_VERSION_2_0 );
curl_setopt($curl, CURLOPT_HEADER, TRUE);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
$response = curl_exec($curl);
var_dump(__FILE__.' line:'.__LINE__,curl_error($curl));exit;
服务端
<?php
echo '1';
结果
string(23) "Empty reply from server"
解决方法
使用HTTP/1.0 可行
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
但是:参考文章中以下方法,我并不能解决问题
禁用Expect
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Expect:’));
##参考
诡异的php curl error Empty reply from server