特定のWebサイトにログインするためのJavaクラスを作成しようとしています。 POSTログイン要求で送信されたデータは
user%5Blogin%5D=uesrname&user%5Bpassword%5D=123456
%5B
と%5D
がキーのユーザーログインで何を意味するのか興味があります。
これらのデータをエンコードする方法
この答えのとおり ここ :str='foo%20%5B12%5D'
はfoo [12]
をエンコードします。
%20 is space
%5B is '['
and %5D is ']'
これは パーセントエンコード と呼ばれ、urlパラメータ値の特殊文字のエンコードに使用されます。
EDITところで、読んでいたところ https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#説明 、なぜこんなに多くの人が同じ検索をするのか私には起こりました。ページ下部のメモを参照してください。
URLのより最近の RFC3986 に従うことを望むならば、(IPv6のために)角括弧を予約し、それ故に可能性のある何かを形成するときにエンコードしないURL(ホストなど)の一部である場合は、次のことが役に立ちます。
function fixedEncodeURI (str) {
return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}
うまくいけば、これは人々がこの質問につまずくとき彼らの問題を解決するのを助けるでしょう。
それらは[
と]
を表します。エンコーディングは 「URLエンコーディング」 と呼ばれます。
URLエンコード時に[]
は%5B%5D
に置き換えられます。
まあそれは普通の URLエンコーディング です
それで、それらはそれぞれ[
、]
を表します。
簡単に見ると、 このオンラインツール を使用してパーセントエン/デコードできます。
データは、おそらくこのように見える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>
メソッドが "post"ではなく "get"の場合は、送信ボタンをクリックすると、次のようなURLに移動します。
http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456
または
http://example.com/?user [login] =ユーザー名&user [パスワード] = 123456
反対側のWebサーバはおそらくuser[login]
とuser[password]
パラメータを取り、それらをそれらの値を含むuser
とlogin
フィールドを持つpassword
オブジェクトにします。