[OK]をJSONとAndroidのクライアントから仕事なので、stackoverflowので尋ねるに過ぎしようとしたすべてをIVEに文字エンコーディングを取得できませんAndroidは、httpclientとresttemplateを使用してサーバー側のSpringコントローラに接続します。すべての私のスウェーデンの文字はは、私はからいくつかのhttpのparamsでREST呼び出しを実行しようとしている...</p> <p>をresttemplateと
はHTTPClientのとresttemplateコードを設定... 'の\ u001A' としてサーバに終わる:
HttpClient httpClient = new HttpClient();
Credentials defaultcreds = new UsernamePasswordCredentials(msisdn, password);
httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM), defaultcreds);
//httpClient.getParams().setContentCharset(prefs.());
httpClient.getParams().setCredentialCharset(prefs.getCredentialsEncoding());
CommonsClientHttpRequestFactory requestFactory = new CommonsClientHttpRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory);
// Add message converters
List<HttpMessageConverter<?>> mc = restTemplate.getMessageConverters();
MappingJacksonHttpMessageConverter json = new MappingJacksonHttpMessageConverter();
List<MediaType> supportedMediaTypes = new ArrayList<MediaType>();
supportedMediaTypes.add(MediaType.APPLICATION_JSON);
json.setSupportedMediaTypes(supportedMediaTypes);
mc.add(json);
restTemplate.setMessageConverters(mc);
return restTemplate;
私はその後、私のパラメータでhttpentityを準備:
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("myparam", "" + "å");
HttpEntity<String> entity = new HttpEntity<String>(headers);
私は最終的にREST呼び出しますサーバー上で
ResponseEntity<UserStatusTO> response = rest.exchange(url, HttpMethod.GET, entity,
MyResponseClass.class);
を、私はジャクソンデシリアライザを持っていると私スプリングコントローラメソッドは次のようになります。
@RequestMapping(method = RequestMethod.GET, value = "/event/out", headers = "Accept=application/json", produces = {"application/xml;charset=UTF-8", "application/json;charset=UTF-8"})
public
@ResponseBody
UserStatusTO out(Authentication auth, @RequestHeader(value="myparam", required = false) String myparam) {
すべての特殊文字は\ u001aとなります!私は手作業でクライアントとサーバー側の文字列を再エンコードして、何も処理していない。私は httpClient.getParams()を使っていろいろ試してみました。setContentCharset(); httpClient.getParams()。setUriCharset();
私が知る限り、何も働いていません。
私はアイデアがありません!誰かが何か入力を持っているならば、私はずっと義務づけられています。ありがとう!
あなたが詰め込むている「MYPARAM」ヘッダを除きå、ä:sとö:s? – Jens
スウェーデン語の文字を持つパラメータは1つだけです。私は私の例を簡略化して読みやすくしましたが、私のアプリでは、ユーザーが私がサーバーに送信しようとしているメモを入力できるフィールドがあります...しかし、私が "å"を持っている場所は私のコードでは、テキストフィールドのテキストを入れます – Mathias