如果用FormBody 发送post表单请求,就不能设置编码格式,contentType方法没有暴露出来,默认也不是UTF-8,参数是汉字就会乱码。
所以换一种方式 ,用 RequestBody
public static final MediaType FORM_CONTENT_TYPE
= MediaType.parse("application/x-www-form-urlencoded; charset=utf-8");
Map<String,String> formParams;//传参
StringBuffer sb = new StringBuffer();
//设置表单参数
for (String key: formParams.keySet()) {
//
sb.append(key+"="+formParams.get(key)+"&");
}
Log.i("TAG", ""+sb.toString());
RequestBody body = RequestBody.create(FORM_CONTENT_TYPE, sb.toString());
//创建请求
request = new Request.Builder()
.url(url)
.post(body)
.build();