我想使用php从以下网址使用restful web服务。
http://www.onemap.sg/API/services.svc/basicSearch?token=qo/s2TnSUmfLz+32CvLC4RMVkzEFYjxqyti1KhByvEacEdMWBpCuSSQ+IFRT84QjGPBCuz/cBom8PfSm3GjEsGc8PkdEEOEr&searchVal=City Hall&otptFlds=SEARCHVAL,CATEGORY&returnGeom=0&rset=1
我尝试使用cURL
<?php
$url='http://www.onemap.sg/API/services.svc/basicSearch?token=qo/s2TnSUmfLz+32CvLC4RMVkzEFYjxqyti1KhByvEacEdMWBpCuSSQ+IFRT84QjGPBCuz/cBom8PfSm3GjEsGc8PkdEEOEr&searchVal=City Hall&otptFlds=SEARCHVAL,CATEGORY&returnGeom=1&rset=1'; //rss link for the twitter timeline
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$resp = curl_exec($curl);
echo($resp);
curl_close($curl);
?>
当我运行此代码时,它不会显示任何内容。
我错过了什么吗?顺便说一下,这是我第一次尝试这样做。
*编辑添加的echo($ resp);但仍然无法运作
答案 0 :(得分:1)
好像你没有按照它的意图消费API。 当我执行以下代码时
<?php
$url='http://www.onemap.sg/API/services.svc/basicSearch?token=qo/s2TnSUmfLz+32CvLC4RMVkzEFYjxqyti1KhByvEacEdMWBpCuSSQ+IFRT84QjGPBCuz/cBom8PfSm3GjEsGc8PkdEEOEr&searchVal=City Hall&otptFlds=SEARCHVAL,CATEGORY&returnGeom=1&rset=1'; //rss link for the twitter timeline
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$resp = curl_exec($curl);
var_dump(curl_error($curl));
curl_close($curl);
var_dump($resp);
?>
我得到了
string(23) "Empty reply from server"
bool(false)
这让我相信您需要改变调用API的方式。就像注册一个令牌一样。
请按照http://www.onemap.sg/API/Help/ =&gt;中提供的步骤操作OneMap REST API =&gt;得到TOken 他们解释了如何申请令牌
答案 1 :(得分:0)
看看http://php.net/manual/en/function.curl-exec.php它表明curl_exec将返回true或false,如果设置了CURLOPT_RETURNTRANSFER则返回结果。你可以使用:
来回应它echo($resp);
--- --- EDIT
仔细观察问题的是URL中的空格和逗号。编码后,它可以正常工作。
以下是工作网址
http://www.onemap.sg/API/services.svc/basicSearch?token=qo/s2TnSUmfLz+32CvLC4RMVkzEFYjxqyti1KhByvEacEdMWBpCuSSQ+IFRT84QjGPBCuz/cBom8PfSm3GjEsGc8PkdEEOEr&searchVal=City%20Hall&otptFlds=SEARCHVAL%2cCATEGORY&returnGeom=1&rset=1