ガイドAPIリファレンス
ガイド

HERE Routing API v8でのURLエンコーディング

一部のパラメーター、特にwaypoint仕様では、値に構造化文字列を使用する場合があります。 その場合、コンテンツ文字が制御文字と衝突する可能性があります。

例として、次のリクエストを考えてみましょう。

curl -gX GET 'https://router.hereapi.com/v8/routes?'\
'transportMode=car&'\
'origin=54.32556,14.65314&'\
'destination=54.65422,14.66636;nameHint=Fish Chips! St. 25&'\
'apiKey=YOUR_API_KEY'

このリクエストには、nameHintの値に、予約文字!とスペースが含まれています。 これらの文字は、あいまいさを解消するためにURLエンコード (パーセントエンコード) される必要があります。

  • &または=を予約文字として使用する場合はエンコードしないでください。
  • リクエストに予約文字がコンテンツとして含まれていない場合 (つまり、それらの文字を意図的な制御上の意味でのみ使用する場合)、何もエンコードする必要はありません。
  • リクエストで予約文字をコンテンツとして使用する場合は、それらをエンコードしますが、制御文字はエンコードしません。二重エンコードはしないでください。このような混合リクエストでは、素の予約文字はすべて制御文字として解釈され、エンコードされたものはすべてコンテンツとして解釈されます。

これらのルールを考慮し、正しいパーセントエンコードが適用されたリクエストの例を次に示します。

curl -gX GET 'https://router.hereapi.com/v8/routes?'\
'transportMode=car&'\
'origin=53.32556,14.65314&'\
'destination=53.65422,14.66636;nameHint=Fish%20%26%20Chips%21%20St.%2025&'\
'apiKey=YOUR_API_KEY'