|
|
|
@ -16,7 +16,6 @@ |
|
|
|
|
|
|
|
|
|
|
|
package org.springframework.http.codec; |
|
|
|
package org.springframework.http.codec; |
|
|
|
|
|
|
|
|
|
|
|
import java.io.UnsupportedEncodingException; |
|
|
|
|
|
|
|
import java.net.URLDecoder; |
|
|
|
import java.net.URLDecoder; |
|
|
|
import java.nio.CharBuffer; |
|
|
|
import java.nio.CharBuffer; |
|
|
|
import java.nio.charset.Charset; |
|
|
|
import java.nio.charset.Charset; |
|
|
|
@ -158,21 +157,16 @@ public class FormHttpMessageReader extends LoggingCodecSupport |
|
|
|
private MultiValueMap<String, String> parseFormData(Charset charset, String body) { |
|
|
|
private MultiValueMap<String, String> parseFormData(Charset charset, String body) { |
|
|
|
String[] pairs = StringUtils.tokenizeToStringArray(body, "&"); |
|
|
|
String[] pairs = StringUtils.tokenizeToStringArray(body, "&"); |
|
|
|
MultiValueMap<String, String> result = new LinkedMultiValueMap<>(pairs.length); |
|
|
|
MultiValueMap<String, String> result = new LinkedMultiValueMap<>(pairs.length); |
|
|
|
try { |
|
|
|
for (String pair : pairs) { |
|
|
|
for (String pair : pairs) { |
|
|
|
int idx = pair.indexOf('='); |
|
|
|
int idx = pair.indexOf('='); |
|
|
|
if (idx == -1) { |
|
|
|
if (idx == -1) { |
|
|
|
result.add(URLDecoder.decode(pair, charset), null); |
|
|
|
result.add(URLDecoder.decode(pair, charset.name()), null); |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
else { |
|
|
|
String name = URLDecoder.decode(pair.substring(0, idx), charset); |
|
|
|
String name = URLDecoder.decode(pair.substring(0, idx), charset.name()); |
|
|
|
String value = URLDecoder.decode(pair.substring(idx + 1), charset); |
|
|
|
String value = URLDecoder.decode(pair.substring(idx + 1), charset.name()); |
|
|
|
result.add(name, value); |
|
|
|
result.add(name, value); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
catch (UnsupportedEncodingException ex) { |
|
|
|
|
|
|
|
throw new IllegalStateException(ex); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|