1

我有一个 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;
?>
4

2 回答 2

3

我认为你应该使用这样GET的方法curl

$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);
于 2015-08-24T10:01:22.620 回答
1

使用下面提到的代码片段使用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";
    }
    ?>
于 2015-08-24T11:41:31.453 回答