Как отправить, JSON возражают по Запросу с Android?

Я хочу отправить следующий текст JSON

{"Email":"aaa@tbbb.com","Password":"123456"}

к веб-сервису и читают ответ. Я знаю к тому, как считать JSON. Проблема состоит в том, что вышеупомянутое объект JSON должно быть отправлено в имени переменной jason.

Как я могу сделать это от андроида? Что является шагами, такими как создание объекта запроса, установка заголовков содержания, и т.д.

115
задан piet.t 28 January 2019 в 09:32
поделиться

2 ответа

В 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);
97
ответ дан 24 November 2019 в 02:21
поделиться

Отправить объект 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.

155
ответ дан 24 November 2019 в 02:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: