昨天找了很多获取接口数据的网站,今天想要用用这些接口,结果发现不会用,主要是返回的数据格式不会用,好心塞呀
像我这种php小白,捣鼓了很久很久,才把它搞懂,必须记下来希望当您遇到同样问题的时候可以节约一点时间吧
利用第三方提供的php代码,是下面这样的
<?php $method = "GET"; // 请求示例 url 默认请求参数已经做URL编码 $url = "http://api01.bitspaceman.com:8000/news/qihoo?apikey={您自己的apikey}&kw=%E7%99%BD&site=qq.com"; $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_ENCODING, "gzip"); var_dump(curl_exec($curl)); ?>
然后把{您自己的apikey}替换成它给你的apikey(切记{}也要去掉哦),然后确实可以输出json数据,但你会发现除了json数据,头部还有很多的代码,如下示例
string(14276) "HTTP/1.1 200 OK Date: Thu, 14 Jun 2018 12:24:16 GMT Content-Type: application/json; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive X-RateLimit-Limit-day: 86400 X-RateLimit-Remaining-day: 86353 X-RateLimit-Limit-minute: 20 X-RateLimit-Remaining-minute: 19 X-RateLimit-Limit-second: 1 X-RateLimit-Remaining-second: 0 X-RateLimit-Limit-month: 2678400 X-RateLimit-Remaining-month: 2678353 Server: nginx src_api: 120.77.98.119:20010 Status_code: 000000 Content-Encoding: gzip X-Kong-Upstream-Latency: 327 X-Kong-Proxy-Latency: 0 Via: kong/0.10.2
那如果我们想要把这些代码给去掉,就要对PHP代码进行修改,所以上面的代码修改完之后就是:
<?php $method = "GET"; // 请求示例 url 默认请求参数已经做URL编码 $url = "http://api01.bitspaceman.com:8000/news/qihoo?apikey={您自己的apikey代码}&kw=%E7%99%BD&site=qq.com"; $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_ENCODING, "gzip"); $content = curl_exec($curl); $header_size = curl_getinfo($curl,CURLINFO_HEADER_SIZE); $bodys = substr($content,$header_size); echo '<pre>'; echo($bodys); ?>
因为我是PHP小白,所以并不打算对它做什么讲解,那主要修改的代码,如下:
$content = curl_exec($curl); $header_size = curl_getinfo($curl,CURLINFO_HEADER_SIZE); $bodys = substr($content,$header_size); echo '<pre>'; echo($bodys);然后,添加完之后,输出的结果就是纯json数据喽,嗯,希望如果您的情况和我一样的话,能够帮到您哦,如果遇到了其他的问题,也可以留言提问哦(PHP知识除外,现在还没学,以后打算学)