POSTリクエストの%5Bおよび%5Dは何を表していますか?


266

特定のWebサイトにログインするためのJavaクラスを作成しようとしています。ログインするためにPOSTリクエストで送信されるデータは

user%5Blogin%5D=username&user%5Bpassword%5D=123456

私は何好奇心%5B%5Dキーでの手段のユーザログイン

これらのデータをどのようにエンコードしますか?

回答:


482

ここでこの回答に従って:str='foo%20%5B12%5D'エンコードfoo [12]

%20 is space
%5B is '['
and %5D is ']'

これはパーセントエンコーディングと呼ばれ、urlパラメータ値の特殊文字のエンコーディングに使用されます。

編集ところで、私がhttps://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Descriptionを読んでいたとき、なぜ多くの人が同じ検索をするのかがわかりました。ページの下部にあるメモを参照してください。

また 、URLの最新のRFC3986に従って、角かっこを(IPv6用に)予約し、URLの一部となる可能性のあるもの(ホストなど)を形成するときにエンコードされないようにしたい場合は、次の方法が役立つことがあります。

function fixedEncodeURI (str) {
    return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}

うまくいけば、これが人々がこの質問に出くわしたときに問題を解決するのに役立つでしょう。


1
本当にありがとうございました。
Rakib Ansary

@TacticalCoder:はい、ありがとうございます。これは私の下手な英語です。すぐに修正します。
Boris Strandjev

RFC3986リンクが壊れている
DudeOnRock




3

簡単に見てみると、このオンラインツールを使用して percent-en / decode できます


1
このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。- レビューから
Peter

@Peterありがとうございます。ただし、これはオンラインツールへのリンクにすぎず、こちらで役立つ場合があります。回答はすでに提供されているため、これ以上の説明は必要ありません。
Krzysztof Przygoda

1

データはおそらく、次のようなWebフォームから投稿されたはずです(ただし、はるかに複雑です)。

<form action="http://example.com" method="post">

  User login    <input name="user[login]"    /><br />
  User password <input name="user[password]" /><br />

  <input type="submit" />
</form>

メソッドが「投稿」ではなく「取得」の場合、送信ボタンをクリックすると、次のようなURLに移動します。

http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456

または:

http://example.com/?user[login]=username&user[password]=123456

反対側のWebサーバーはuser[login]user[password]パラメータを受け取り、それらの値を含むフィールドとフィールドを持つuserオブジェクトにします。loginpassword


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.