mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix decode
This commit is contained in:
parent
549523db6c
commit
91de866ffa
@ -1,5 +1,6 @@
|
||||
package cn.hutool.core.net;
|
||||
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.util.CharUtil;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@ -87,6 +88,11 @@ public class URLDecoder implements Serializable {
|
||||
char c;
|
||||
for (int i = 0; i < length; i++) {
|
||||
c = str.charAt(i);
|
||||
if('+' == c){
|
||||
result.append(isPlusToSpace ? CharUtil.SPACE : c);
|
||||
begin++;
|
||||
continue;
|
||||
}
|
||||
if(ESCAPE_CHAR == c || CharUtil.isHexChar(c)){
|
||||
continue;
|
||||
}
|
||||
|
@ -14,6 +14,12 @@ public class UrlDecoderTest {
|
||||
Assert.assertEquals("+", URLDecoder.decodeForPath("+", CharsetUtil.CHARSET_UTF_8));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void decodePlusTest() {
|
||||
final String decode = URLDecoder.decode("+", CharsetUtil.CHARSET_UTF_8);
|
||||
Assert.assertEquals(" ", decode);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void issue3063Test() throws UnsupportedEncodingException {
|
||||
// https://github.com/dromara/hutool/issues/3063
|
||||
|
@ -383,17 +383,19 @@ public class HttpUtilTest {
|
||||
|
||||
@Test
|
||||
public void httpParameterDecodeTest () {
|
||||
String test = "this is test测试";
|
||||
int port = NetUtil.getUsableLocalPort();
|
||||
final String test = "this is test测试";
|
||||
final int port = NetUtil.getUsableLocalPort();
|
||||
HttpUtil.createServer(port)
|
||||
.addAction("/formEncoded", (req, resp) -> resp.write(req.getParam("test")))
|
||||
.addAction("/urlEncoded", (req, resp) -> resp.write(req.getParam("test")))
|
||||
.start();
|
||||
String resp = HttpUtil.createPost(String.format("http://localhost:%s/formEncoded", port))
|
||||
|
||||
final String resp = HttpUtil.createPost(String.format("http://localhost:%s/formEncoded", port))
|
||||
.form("test", test).execute().body();
|
||||
Assert.assertEquals("Form请求参数解码", test, resp);
|
||||
String urlGet = UrlBuilder.of(String.format("http://localhost:%s/urlEncoded", port)).addQuery("test", test).build();
|
||||
String resp2 = HttpUtil.createGet(urlGet).execute().body();
|
||||
|
||||
final String urlGet = UrlBuilder.of(String.format("http://localhost:%s/urlEncoded", port)).addQuery("test", test).build();
|
||||
final String resp2 = HttpUtil.createGet(urlGet).execute().body();
|
||||
Assert.assertEquals("QueryString请求参数编码", test, resp2);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user