doubipiao1611 2017-03-10 23:20
浏览 71
已采纳

为什么我的API的JSON响应没有在PHP中显示?

I need to display the JSON response received from an API call. But due to some issues it doesn't display the response. Server/IP settings, API status are everything OK at API provider's end. So now, I couldn't figure out the issue.

I'm doing the PHP part in the following way:

PHP

$url="https://api.domain.com/getdata.php?format=json&token=2455445444&type=ROWS";

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


    $output = curl_exec($ch);
    curl_close($ch);    
    $json = json_decode($output, true);

    $resCode = $json['resCode'];
    $resText = $json['resText'];

    $rows = $json['data']['ROWS'];


    if (count($rows) > 0) {

                        echo "<table border='1' width='50%' align='center'><thead><tr>
                        <th>Amount</th>
                        <th>Detail</th>
                        <th>Validity (days)</th>
                        <th>Talktime</th>
                        </tr></thead><tbody>";
                        foreach($rows as $key => $value)
                        {
                            echo " <tr><td>" .$value["column1"] . "</td> <td>" .$value["column2"] . "</td> <td>" .$value["column3"] . "</td> <td>" .$value["column4"] . "</td> </tr>";
                        }
                        echo "</tbody></table><br/>";
                }
                echo "Not available <br/> Try again!";

JSON Response from API

{
    "data":{

        "ROWS": [
                    {
                        "column1":"123",
                        "column2":"456",
                        "column3":"789",
                        "column4":"054"
                    },
                    {
                        "column1":"775",
                        "column2":"545",
                        "column3":"647",
                        "column4":"745"
                    },
                    {
                        "column1":"440",
                        "column2":"544",
                        "column3":"745",
                        "column4":"999"
                    }
                ]
        },

    "resCode":"200",
    "resText":"SUCCESS"

}

Getting Output:

Not available  
Try again!

Expecting Output in HTML

<table border="1" width="50%" align="center">
<thread>
<tr>
  <th>Column 1</th>
  <th>Column 2</th>
  <th>Column 3</th>
  <th>Column 4</th>
</tr>
</thread>
<tbody>
<tr>
  <td>123</td>
  <td>456</td>
  <td>789</td>
  <td>054</td>
</tr>
<tr>
  <td>775</td>
  <td>545</td>
  <td>647</td>
  <td>745</td>
</tr>
<tr>
  <td>440</td>
  <td>544</td>
  <td>745</td>
  <td>999</td>
</tr>
</tbody>
</table> 

Any help will be appreciated! Thanks.

  • 写回答

1条回答 默认 最新

  • dor2p0520 2017-03-13 11:20
    关注

    I used curl_error($ch) to know if there's any error with curl. And it let me know that I'm facing the issue because of SSL validation issue with the API URL.

    So, I removed the s from https in the API URL. And it worked!

    I know its a security compromise! But the referrer url is using http, so I need to remove the SSL validation from api url too.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序 用oss下载 aliyun-oss-sdk-6.18.0.min client报错
  • ¥15 ArcGIS批量裁剪
  • ¥15 labview程序设计
  • ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com
  • ¥15 Cloudreve保存用户组存储空间大小时报错
  • ¥15 伪标签为什么不能作为弱监督语义分割的结果?
  • ¥15 编一个判断一个区间范围内的数字的个位数的立方和是否等于其本身的程序在输入第1组数据后卡住了(语言-c语言)
  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥15 抖音看过的视频,缓存在哪个文件