下記のコードについて質問があります。
HttpClient通信でOkHttpClientをJavaで実装中です。
POSTではなくGET通信での話です。
GET通信で渡す時のパラメータで、
現在私が担当しているシステム上、addHeaderだけでなく
.url()のメソッドの中に渡すパラメータもエンコードしなくてはいけないのですが、
どの様にするとエンコードできるでしょうか。
最終的にurlBuilderのパラメータをエンコードしている状態でRequestに詰める事ができればいいので、
どこでどの様にするのかを悩んでいます。
(※"Windows-31J"にエンコードしたいです。)
HttpUrl.Builderに搭載されているaddQueryParameter()は渡す時に
UTF8にしてしまうのでこれは使えません。
何か名案あれば教えて頂けますと幸いです。
Java
1 public ParamTest getTest(Map<String, String> param) { 2 //・・・ 3 //・・・//(割愛) 4 String url = (String) configManager.getConfigValue(DETAIL_URL); 5 6 HttpUrl.Builder urlBuilder = HttpUrl.parse(url).newBuilder(); 7 8 for(Map.Entry<String, String> params : param.entrySet()) { 9 urlBuilder.addEncodedQueryParameter(params.getKey(), params.getValue()); 10 } 11 Request request = new Request.Builder().url(urlBuilder.build()) 12 .addHeader("Content-Type", "application/x-www-form-urlencoded; cahrset=" + "Windows-31J").build(); 13 }
回答2件
あなたの回答
tips
プレビュー