Maison >développement back-end >tutoriel php >Comment obtenir la méthode de requête https via curl

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

jacklove
jackloveoriginal
2018-06-09 11:29:526239parcourir

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

Solution, lors de la demande de curl, ajouter

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

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;
?>

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!

Déclaration:
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