1. 程式人生 > >【okhttp】Post請求設定utf-8編碼(解決漢語請求亂碼問題)

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