繁体   English   中英

如何通过PHP Curl从Rest API获取JSON数据?

[英]How to get JSON data from Rest API by PHP Curl?

我有一个Rest api,可以通过以下URL访问:“ http://127.0.0.1:8000/api/thesis/?format=json ”。 现在,我想从中获取JSON数据。 为了连接到api,我尝试如下使用PHP-Curl。 但是我得到NULL! (这是我第一次使用php,任何帮助都会很棒!)

<?php
$service_url = "http://127.0.0.1:8000/api/thesis/?format=json";
//initialize a curl session
$curl = curl_init();
//set options for the transfer
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_TIMEOUT, 5);
curl_setopt($curl, CURLOPT_URL, $service_url);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
//execute the session
$curl_response = curl_exec($curl);
//finish off the session
curl_close($curl);
$curl_jason = var_dump(json_decode($curl_response, true));
print_r($curl_jason);
echo $curl_jason;
?>

我想你应该像这样使用curl GET方法

$service_url = "http://127.0.0.1:8000/api/thesis/?format=json";
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
//execute the session
$curl_response = curl_exec($curl);
//finish off the session
curl_close($curl);
$curl_jason = json_decode($curl_response, true);
print_r($curl_jason);

使用下面提到的代码片段使用PHP curl从REST API中获取数据

 <?php
    function _isCurl(){
        return function_exists('curl_version');
    }    
    if (_iscurl()){
        //curl is enabled
        $url = "http://testDomainName/restAPI.php?id=123&amt=100&jsonp=?";    
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);                               
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $output = curl_exec($ch);
        curl_close($ch);
        print_r($output);
       // Curl operations finished            
    }
    else{
        echo "CURL is disabled";
    }
    ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM