需求背景:由于一些接口并没有采用常规的form形式,而是用一个json作为入参,形如{"userName":"zhangsan","password":"123456"}.
这种情况下用restTemplate也行,用httpClient也行,但是restTempalte和httpClient都可能有乱码问题。我这里用最原生的UrlConnection来解决,加上一些头部信息,即可解决乱码,很爽。
关键代码:
public static void post(String url, String param ) throws Exception{
String charset = "UTF-8";
URLConnection connection = new URL(url).openConnection();
connection.setDoOutput(true); Triggers POST.
connection.setRequestProperty("Accept-Charset", charset);
connection.setRequestProperty("Content-Type", "application/json;charset=" + charset);
try (OutputStream output = connection.getOutputStream()) {
output.write(param.getBytes(charset));
}
InputStream response = connection.getInputStream();
String result= InputStreamTOString(response, "UTF-8");
System.out.println("result^_^"+result);
}
final static int BUFFER_SIZE = 4096;
/
- 将InputStream转换成某种字符编码的String
- @param in
- @param encoding
- @return
- @throws Exception
*/
public static String InputStreamTOString(InputStream in,String encoding) throws Exception{
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[BUFFER_SIZE];
int count = -1;
while((count = in.read(data,0,BUFFER_SIZE)) != -1)
outStream.write(data, 0, count);
data = null;
return new String(outStream.toByteArray(),encoding);
}
具体代码我已经封装在V3架构里面的HttpClientUtil的postWithJson方法中,为了保持统一,本方法强制用UTF-8编码。
只要接受3个参数,具体看源码即可。
refurl:http://stackoverflow.com/questions/7181534/http-post-using-json-in-java
相关推荐
C#接收Json格式数据,中文出现乱码解决方法
总之,解决JSON中文乱码问题的关键在于确保在读写文件以及转化JSON字符串时都正确地指定和处理UTF-8编码。在Python 2.x中,使用`codecs.open`并在`json.dumps`中设置`ensure_ascii=False`;在Python 3.x中,直接使用...
以下将详细介绍在Java中如何解决HTTP请求传输JSON数据出现乱码的问题。 首先,我们了解乱码出现的原因。HTTP协议是基于ASCII的,而在HTTP协议中传输中文字符时,如果没有明确指定字符编码,服务器和浏览器可能会...
本文将详细介绍如何解决JSON中的中文乱码问题,并提供几种简单实用的方法来帮助开发者避免这类问题的发生。 #### 一、问题背景与原因分析 在Web开发中,前后端之间传递的数据格式往往采用JSON(JavaScript Object ...
总结来说,解决JSON中文乱码问题的关键在于确保JSON数据从生成到传输再到解析的整个过程中,始终使用UTF-8编码。在Java后端,要使用UTF-8编码生成JSON字符串,并在HTTP响应中设置正确的Content-Type;在JavaScript...
以下将详细讲解如何在Android中读取本地JSON文件,并解决可能出现的显示乱码问题。 1. **读取本地JSON文件(但显示汉字乱码)** 这个问题通常发生在读取文件时没有正确指定字符编码。在Android中,我们通常使用`...
懒得考虑各种字符编码问题了,用了一个比较暴力的方法,不只中文,所有双字节文字都可以避免乱码问题。
首先,针对请求入参的JSON数据格式配置,特别是日期类型的字段,我们需要创建一个自定义的日期编辑器(PropertyEditor)。例如,`DateEditor` 类继承自 `PropertyEditorSupport`,用于将JSON中的日期字符串转换为...
解决JSONCPP写入乱码问题的关键步骤包括以下几个方面: 1. **确保文件打开模式正确**:当你使用`std::ofstream`打开文件时,应明确指定以二进制模式和UTF-8编码进行写入,例如: ```cpp std::ofstream file(...
soapUI输入中文显示为乱码 响应报文中文乱码问题解决方法
json.dumps(var,ensure_ascii=False)并不能解决中文乱码的问题 json.dumps在不同版本的Python下会有不同的表现, 注意下面提到的中文乱码问题在Python3版本中不存在。 注:下面的代码再python 2.7版本下测试通过 # -...
本篇知识分享将详细解释在PHP中遇到json_encode中文乱码问题时的解决办法。 ### 1. JSON编码原理简述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于文本,独立于语言,具有良好的可读性和互...
本文将深入探讨如何以“对象”方式接收JSON数据,并解决可能出现的乱码问题。 首先,让我们理解JSON数据的结构。JSON数据由键值对组成,其中键是字符串,值可以是字符串、数字、布尔值、数组、null或另一个JSON对象...
本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...
【标题】"Postjson_windows接口测试工具"是一个专为Windows平台设计的应用程序,它使得开发者和测试人员能够方便地对RESTful API接口进行测试。在软件开发过程中,接口测试是确保不同系统组件之间数据交换正确性的...
JSON Tools 是一个强大的工具集,专门用于处理与JSON(JavaScript Object Notation)相关的任务,尤其在测试接口数据方面。JSON是一种轻量级的数据交换格式,因其简洁和易于阅读的特性,广泛应用于网络服务和应用...
总结起来,JSONCPP是一个用于C++的JSON处理库,而提供的win32 relese版是针对32位Windows系统优化的版本,解决了在使用`toStyledString`函数时可能出现的中文乱码问题。解决这类问题通常涉及编码设置、字符集转换...
在使用Python的Pandas库处理数据之后,我们常常需要将DataFrame对象导出为JSON...通过上述的步骤和知识点,你可以有效地解决Pandas to_json()方法在处理中文数据时出现的乱码问题,并将数据以正确的JSON格式保存下来。