关于URLEncode和URLDecode
get方法
浏览器会先把空格变成%20 而+号还保留
然后接收到请求之后decode的时候,
case '+':
sb.append(' ');
i++;
needToChange = true;
break;
会把+号变成空格,
然后这个字符串中原来的空格(%20)解码之后还是空格
所以导致get方法发送的时候会没有+号
post方法
选择x-www-form-urlencoded的方式发送
这时候会把+号变成%2B 空格变成+,
if (c == ' ') {
c = '+';
needToChange = true;
}
然后decode的时候把+号变成空格了,%2B解码成+。
所以来说,post方式直接用URLEncode加密解密是没有问题的
get方式的话就要注意+号了
get方法
浏览器会先把空格变成%20 而+号还保留
然后接收到请求之后decode的时候,
case '+':
sb.append(' ');
i++;
needToChange = true;
break;
会把+号变成空格,
然后这个字符串中原来的空格(%20)解码之后还是空格
所以导致get方法发送的时候会没有+号
post方法
选择x-www-form-urlencoded的方式发送
这时候会把+号变成%2B 空格变成+,
if (c == ' ') {
c = '+';
needToChange = true;
}
然后decode的时候把+号变成空格了,%2B解码成+。
所以来说,post方式直接用URLEncode加密解密是没有问题的
get方式的话就要注意+号了