我有一篇文章发布仪表板网站,我从网站发送一个cURL请求,我想将文章显示在仪表板上,它返回数据,这是我使用的代码:
public function articleData(Request $request, $text){
$host1 = request()->getHost();
$host = str_replace('www.', '', $host1);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://somedomain.com/getData?host=$host&artURL=".strtolower($text),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$article = curl_exec($curl);
curl_close($curl);
$articles = json_decode($article, true);
return view('Pages.articleTemp')->with('articles', $articles[0]);
}我面临的问题是,当我把它上传到一个实时服务器时,它停止返回数据,这使得网站抛出了一个错误。
我试过用这个
print curl_error($curl);它返回以下错误: SSL证书问题:自签名证书
我尝试在cURL数组中使用以下内容:
CURLOPT_SSL_VERIFYHOST
CURLOPT_SSL_VERIFYPEER什么都没起作用
它在本地主机上运行得很好,这只能在实时服务器上运行。
发布于 2022-09-17 01:37:19
这些选项禁用SSL。
CURLOPT_SSL_VERIFYHOST
CURLOPT_SSL_VERIFYPEER您可能需要使用URLOPT_CAINFO选项,或者可以使用CURLOPT_CAPATH选项指定证书目录。
这没什么大不了的。更多的是个人恩怨。
While是CURLOPT_CUSTOMREQUEST的一个有效参数
它会起作用的,但是PHP手册上说:
一种自定义请求方法,用于在执行HTTP请求时使用而不是"GET“或"HEAD”。这对于执行“删除”或其他更模糊的HTTP请求非常有用。
使用CURLOPT_HTTPGET=>true,
如果使用任何违反RFC 3986 -统一资源标识符( URI )定义的泛型URI语法的字符,则可能需要在URL上使用urlencode():泛型语法
一个例子
urlencode($text);我看到$request被传递给您的函数
我没有看到任何CURLOPT_HTTPHEADER
我看到您定义了$host,应该在中
$request = array();
$request[] = "Host: $host";
CURLOPT_HTTPHEADER=>$request,https://stackoverflow.com/questions/73746257
复制相似问题