使用cURL从API获取JSON不会返回任何内容

时间:2018-12-23 13:47:51

标签: php json curl

我已经开始制作一个网页,该网页使用另一个网站上的API来获取用于验证网站的电话号码,我已经在使用Python。但是,当我尝试使用cURL从API获取JSON数据时,它什么也不返回。 PHP的代码如下。

echo "Requesting number...";
$url = 'api.php'; # changed from the actual website

$params = array(
    'metod' => 'get_number', # misspelt because it is not an english website
    'apikey' => 'XXXXXXXXXXXXXXXXXXXXXXXXX',
    'country' => 'RU',
    'service' => 'XXXXX',
 );

$ch = curl_unit();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);

$result = curl_exec($ch);
if(curl_errno($ch) !== 0) {
    error_log('cURL error when connecting to ' . $url . ': ' . curl_error($ch));
}

curl_close($ch);

print_r($result);`

我希望在服务器上执行代码时,应该从文件中提供所有JSON,然后我可以在以后使用这些JSON来仅选择其中的某些部分以在其他地方使用。但是,实际结果是它不打印任何内容,如下所示:https://imgur.com/sdCYhlw

1 个答案:

答案 0 :(得分:-1)

我不确定您的代码为什么不起作用,但是更简单的选择是使用file_get_contents

public List<string> GetColumn (int indexCol, string filePath)
{
    List<string> col = new List<string>();

    using (var stream = new FileStream(filePath, FileMode.Open))
    {
    ISheet sheet;
    string sFileExtension = Path.GetExtension(filePath.GetFileName()).ToLower();
    stream.Position = 0;

    if (sFileExtension == ".xls")
    {
        HSSFWorkbook hssfwb = new HSSFWorkbook(stream); 
        sheet = hssfwb.GetSheetAt(0);
    }
    else
    {
        XSSFWorkbook xssfwb = new XSSFWorkbook(stream);
        sheet = xssfwb.GetSheetAt(0); 
    }


    for (int i = sheet.FirstRowNum; i <= sheet.LastRowNum; i++)
    {
        IRow row = sheet.GetRow(i);
        if (row == null) continue;

        ICell cell = row.GetCell(indexCol);
        if (cell == null) continue;
        col.Add(cell.StringCellValue);
    }
    }
   return col;
}