質問
RESTコネクターによるリクエスト処理を実行したところ、接続先に指定したURLのパスが意図と異なった形で変換されてしまいます。
また、コンポーネントプロパティの[必須設定] - [パス]で同様のURLパスを指定した場合も同様の変換がされてしまいます。
原因を教えてください。
具体的には「https://www.example.com:1030/path:data」のURLを指定してPUT実行処理を行ったところ、
実際のリクエスト時のエンドポイントは「https://www.example.com:1030/path%3Adata」となってしまっています。
回答
RESTコネクターの機能によって該当文字がURLエンコード処理されたことが原因と考えられます。
RESTコネクターにおける仕様として、URLにおけるパス部に不正文字や予約文字として指定されている文字がリクエストに含まれている場合、自動的にURLエンコードされた形式の文字列に変換されます。
外部サイトとなりますが、以下サイトの仕様となります。
・URLEncoder
https://docs.oracle.com/javase/jp/8/docs/api/java/net/URLEncoder.html
この仕様によりますと、以下の3点以外は変換されます。
- 英数字文字の「
a」から「z」、「A」から「Z」、および「0」から「9」は元のまま残します。 - 特殊文字の「
.」、「-」、「*」、および「_」は元のまま残します。 - 空白文字「 」はプラス記号「
+」に変換されます。
また、変換方式は、「application/x-www-form-urlencoded MIME形式」となり、どのように変換されるのかはエンコーディングに選択されている文字コードの変換表などで見比べてください。
変換される文字列の対象が多いため、リストとしての提示はできかねます。
また、文字コードの変換表についても、具体的なリストを提示することはできません。
インターネット検索にてご確認ください。
なお、一般サイトのため、情報の正確性は担保できかねますが、参考として以下のようなサイトをご確認ください。
コメント
0件のコメント
記事コメントは受け付けていません。