リクエスト形式はjsonなんだけど、マルチバイト(っていうか日本語)が入ってくるパターンがググってもイマイチ出てこなかったので忘備録。
request.java
// リクエストパラメータをセット
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(RequestParameters.AUTH_PARAM.toString(), myself.getAuthToken()));
params.add(new BasicNameValuePair(RequestParameters.HITOKOTO.toString(), message));
// URLエンコード
String entityValue = URLEncodedUtils.format(params, HTTP.UTF_8);
StringEntity se = new StringEntity(entityValue, HTTP.UTF_8);
// Content TypeはPOSTのヘッダと同じ se.setContentType(URLEncodedUtils.CONTENT_TYPE);
url = http://localhost/hogehoge;
// リクエスト
HttpPut put = new HttpPut(url);
put.setEntity(se);
// レスポンス
HttpResponse httpResponse = client.execute(put);
str = EntityUtils.toString(httpResponse.getEntity(), HTTP.UTF_8);
マルチバイトを考慮しなければ、StringEntityにjsonなりを直接セットしておけなんだけど、エンコードする場合は、UrlEncodedFormEntityを使うってサラッと書いてる場合が多かった。
それだとjsonじゃなくなるんだよね。。(これも結局jsonのリクエストではないけどw
サーバ側が変えられない中で四苦八苦した結果、これでOKが返って来たので良いこととするー