无法从 curl 调用中正确获取 json


not able to fetch json correctly from curl call?

一个虚拟脚本,它与一些json一起响应。

<?php
$result['code'] = 200;
echo json_encode($result);
?>

但是,当我对此脚本进行 curl 调用时,尝试获取 json 响应,然后将其转换为数组。事情出了问题。

通常我做一个简单的json_decode($json),它给了我一个数组,但显然当我var_dump json_decode($json)时,它给了我int(1)作为响应。我只想从 json 中获取代码。

这是我的代码:

public function curlcall($username, $msg)
{
    $url           = 'someurl.php';
    $fields        = array('username' => $username, 'message' => $msg);
    $fields_string = null;
    foreach ($fields as $key => $value) {$fields_string .= $key . '=' . $value . '&';}
    rtrim($fields_string, '&');
    //open connection
    $ch = curl_init();
    //set the url, number of POST vars, POST data
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, count($fields));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $result = curl_exec($ch);
    curl_close($ch);
    echo '-------------------------';
    var_dump($result);
    exit;
}

当我直接从 rest 客户端调用脚本时,它给了我完美的 json 响应。但是当我通过 curl 请求相同的 json 时,我在将该 json 转换为数组时没有得到所需的结果。

为了简单起见,

我只是回声了一根弦,但当我var_dump它时,它给了我int(1).

试试这个:

    $ch = curl_init();
    //set the url, number of POST vars, POST data
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, count($fields));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //NOTICE this line, which says you want a response returned to the calling script
    $result = curl_exec($ch);
    curl_close($ch);
    echo '-------------------------';
    var_dump($result);