如果用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();