Comment obtenir la méthode de requête https via curl

jacklove
Libérer: 2023-03-31 08:22:01
original
6207 Les gens l'ont consulté

curl pour obtenir la méthode de requête https

Je travaille sur un projet aujourd'hui et je dois utiliser curl pour obtenir l'API tierce. L'API de l'autre partie est https .

J'ai déjà pu obtenir des requêtes http en utilisant curl, mais lorsque j'ai obtenu des requêtes https aujourd'hui, le message d'erreur suivant est apparu : La vérification du certificat a échoué.

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Copier après la connexion

Solution, lors de la demande de curl, ajouter

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在
Copier après la connexion

curl https Code de requête

<?php
/** curl 获取 https 请求
* @param String $url        请求的url
* @param Array  $data       要發送的數據
* @param Array  $header     请求时发送的header
* @param int    $timeout    超时时间,默认30s
*/
function curl_https($url, $data=array(), $header=array(), $timeout=30){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    $response = curl_exec($ch);
    if($error=curl_error($ch)){
        die($error);
    }
    curl_close($ch);
    return $response;
}
// 调用
$url = &#39;https://www.example.com/api/message.php&#39;;
$data = array(&#39;name&#39;=>&#39;fdipzone&#39;);
$header = array();
$response = curl_https($url, $data, $header, 5);
echo $response;
?>
Copier après la connexion

Cet article explique comment obtenir la méthode de requête https via curl Pour plus de contenu connexe, veuillez faire attention au site Web chinois php.

Recommandations associées :

Explication sur la façon de télécharger des images et de les enregistrer dans la base de données via php

Comment envoyer via php Comment mosaïquer partiellement des images via php avec réception de fichiers en streaming

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal