【okhttp】Post请求设置utf-8编码(解决汉语请求乱码问题)

 如果用FormBody 发送post表单请求,就不能设置编码格式,contentType方法没有暴露出来,默认也不是UTF-8,参数是汉字就会乱码。

所以换一种方式 ,用   RequestBody

public static final MediaType FORM_CONTENT_TYPE
            = MediaType.parse("application/x-www-form-urlencoded; charset=utf-8");


Map 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();






你可能感兴趣的:(Android疑难解惑,okhttp,post,utf-8编码)