[英]calling oneMap Rest API using php
我想使用php從以下URL消耗一個寧靜的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); 但仍然行不通
似乎您沒有按原意使用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/ => OneMap REST APIs =>獲取令牌中提供的步驟進行操作。它們說明了如何請求令牌。
看一下http://php.net/manual/en/function.curl-exec.php,它指出curl_exec將返回true或false,或者如果設置了CURLOPT_RETURNTRANSFER,則返回結果。 您可以使用以下命令回顯它:
echo($resp);
- -編輯 - -
更仔細地看,問題是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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.