0

私はphpを使用して、次のURLからのRESTfulWebサービスを利用しようとしています。

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);を編集します。しかし、それでも機能しません

4

2 に答える 2

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/で提供されている手順に従ってください =>OneMapRESTAPI=>トークンを取得トークンをリクエストする方法を説明しています

于 2013-02-03T14:01:52.083 に答える
0

http://php.net/manual/en/function.curl-exec.phpを見てください。これは、curl_execがtrueまたはfalseを返すか、CURLOPT_RETURNTRANSFERが設定されている場合の結果を返すと述べています。次を使用してエコーできます。

echo($resp);

- -編集 - -

問題を詳しく調べたところ、URLの空白とコンマが問題になっています。エンコードすると正常に動作します。

これが作業用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
于 2013-02-03T13:36:26.240 に答える