簡體   English   中英

使用php調用oneMap Rest API

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM