表单提交中对于中文数据的编码集设置方法
其中的中文编码并不是在发送之前就将数据进行编码,而是在请求时进行设置的,不需要手动编码。
1、Hutool中
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import java.util.LinkedHashMap;
import java.util.Map;
public static void main(String[] args) throws Exception {
Map<String, Object> map = new LinkedHashMap<>();
;
map.put("param1", "1");
map.put("param2", "2");
map.put("param3", "3");
map.put("param4", "中文");
//设置表单数据的编码集
String params = HttpUtil.toParams(map, "GBK");
HttpRequest post = HttpUtil.createPost("url");
String body = post.body(params).execute().body();
System.out.println(body);
}
2、HttpClient中
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public static void main(String[] args) throws Exception {
String info = null;
try {
HttpClient httpclient = new HttpClient();
PostMethod post = new PostMethod("url");
post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "gbk");
post.addParameter("param1", "1");
post.addParameter("param2", "2");
post.addParameter("param3", "3");
post.addParameter("param4", "中文");
httpclient.executeMethod(post);
info = new String(post.getResponseBody(), "gbk");
System.out.println(info);
} catch (Exception e) {
e.printStackTrace();
}
}
3、Groovy中的HTTPBuilder
import groovyx.net.http.ContentType
import groovyx.net.http.EncoderRegistry
import groovyx.net.http.HTTPBuilder
import groovyx.net.http.Method
static void main(String[] args) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("param1", "1");
map.put("param2", "2");
map.put("param3", "3");
map.put("param4", "中文");
def data = null
def http = new HTTPBuilder("url")
http.ignoreSSLIssues()
//设置表单数据的编码集
http.setEncoderRegistry(new EncoderRegistry().setCharset("GBK"))
http.request(Method.POST, ContentType.TEXT) { req ->
requestContentType = ContentType.URLENC
uri.query = map
response.success = { resp, reader ->
data = reader.text
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义