Я хочу отправить следующий текст JSON
{"Email":"aaa@tbbb.com","Password":"123456"}
к веб-сервису и читают ответ. Я знаю к тому, как считать JSON. Проблема состоит в том, что вышеупомянутое объект JSON должно быть отправлено в имени переменной jason
.
Как я могу сделать это от андроида? Что является шагами, такими как создание объекта запроса, установка заголовков содержания, и т.д.
В Android нет специального кода для отправки и получения HTTP, вы можете использовать стандартный код Java. Я бы рекомендовал использовать HTTP-клиент Apache, который поставляется вместе с Android. Вот фрагмент кода, который я использовал для отправки HTTP POST.
Я не понимаю, какое отношение имеет отправка объекта в переменной с именем "jason". Если вы не уверены, что именно хочет сервер, подумайте о написании тестовой программы для отправки различных строк на сервер, пока вы не поймете, в каком формате они должны быть.
int TIMEOUT_MILLISEC = 10000; // = 10 seconds
String postMessage="{}"; //HERE_YOUR_POST_STRING.
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
HttpClient client = new DefaultHttpClient(httpParams);
HttpPost request = new HttpPost(serverUrl);
request.setEntity(new ByteArrayEntity(
postMessage.toString().getBytes("UTF8")));
HttpResponse response = client.execute(request);
Отправить объект json из Android легко, если вы используете HTTP-клиент Apache. Вот пример кода, как это сделать. Вы должны создать новый поток для сетевых действий, чтобы не блокировать поток пользовательского интерфейса.
protected void sendJson(final String email, final String pwd) {
Thread t = new Thread() {
public void run() {
Looper.prepare(); //For Preparing Message Pool for the child Thread
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
HttpResponse response;
JSONObject json = new JSONObject();
try {
HttpPost post = new HttpPost(URL);
json.put("email", email);
json.put("password", pwd);
StringEntity se = new StringEntity( json.toString());
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
post.setEntity(se);
response = client.execute(post);
/*Checking response */
if(response!=null){
InputStream in = response.getEntity().getContent(); //Get the data in the entity
}
} catch(Exception e) {
e.printStackTrace();
createDialog("Error", "Cannot Estabilish Connection");
}
Looper.loop(); //Loop in the message queue
}
};
t.start();
}
Вы также можете использовать Google Gson для отправки и получения JSON.