Как разместить пары ключ / значение вместо объекта JSON, используя Spring для Android?
Я пытаюсь использовать Spring для Android, чтобы сделать стандартный HTTP POST для URL, где тело представляет собой просто список параметров (например, пары ключ-значение), а не объект JSON.
Я хотел бы, чтобы ответ был преобразован из JSON в Java ResponseObject, но из того, что я могу сказать, Spring также преобразовывает мое тело в JSON.
Вот мой код:
Map<String, Object> params = new HashMap<String, Object>();
params.put("client_id", mClientId);
params.put("state", mState);
params.put("username", mUsername);
params.put("password", mPassword);
return getRestTemplate().postForObject(url, params, ResponseObject.class);
Заранее спасибо!
2 ответа
Решение
Попробуй это
размещение списка пар простых имен и значений
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
try{
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("name", nameString));
nameValuePairs.add(new BasicNameValuePair("Country", "country name"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httpclient.execute(httppost);
}catch (ClientProtocolException e) {
// TODO Auto-generated catch block
}
Использование .exchange()
// Create the request body as a MultiValueMap
MultiValueMap<String, String> body = new LinkedMultiValueMap<String, String>();
body.add("client_id", mClientId); // and so on
// Note the body object as first parameter!
HttpEntity<?> httpEntity = new HttpEntity<Object>(body, requestHeaders);
MyModel model = restTemplate.exchange("/api/url", HttpMethod.POST, httpEntity, MyModel.class);