Запрос JSON в Java

300
13 мая 2018, 20:00

нужно написать код для тестирования API через JSON.

1) Нужно сделать запрос серверу и включить туда заголовки (headers) и информацию по имени пользователя и пароль.

2) Нужно прочитать ответ с сервера и подтвердить что пользователь залогинился.

3) После этого, нужно отослать на сервер блок информация для обработки и проверить что она обработана.

Я новичок в этом, раньше не сталкивался. Даже не знаю с чего начать. Пытался пользовать библитеки типа Json Simply но ничего не получилось, я не понимаю как это нужно делать. Если кто знает подскажите или помогите с кодом.

Спасибо.

Answer 1

Если ответ не полный/не понятый/не тот, что надо - напиши об этом в комментарии

1) Хорошее видео по JSON - YouTube ссылка (на русском)

2) Пример POST и GET, которую я взял за основу для "извлечения данных с бирж":

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
public class HttpURLConnectionExample {
    private final String USER_AGENT = "Mozilla/5.0";
    public static void main(String[] args) throws Exception {
        HttpURLConnectionExample http = new HttpURLConnectionExample();
        System.out.println("Testing 1 - Send Http GET request");
        http.sendGet();
        System.out.println("\nTesting 2 - Send Http POST request");
        http.sendPost();
    }
    // HTTP GET request
    private void sendGet() throws Exception {
        String url = "https://api.kraken.com/0/public/Trades?pair=XXBTZEUR&since=0";
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        // optional default is GET
        con.setRequestMethod("GET");
        //add request header
        con.setRequestProperty("User-Agent", USER_AGENT);
        int responseCode = con.getResponseCode();
        System.out.println("\nSending 'GET' request to URL : " + url);
        System.out.println("Response Code : " + responseCode);
        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
        //print result
        System.out.println(response.toString());
    }
    // HTTP POST request
    private void sendPost() throws Exception {
        String url = "https://api.kraken.com/0/public/Ticker?pair=XBTCZUSD";
        URL obj = new URL(url);
        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
        //add request header
        con.setRequestMethod("POST");
        con.setRequestProperty("User-Agent", USER_AGENT);
        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
        String urlParameters = "{\"pair\":{\"XBTEUR\"}";
        // Send post request
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(urlParameters);
        wr.flush();
        wr.close();
        int responseCode = con.getResponseCode();
        System.out.println("\nSending 'POST' request to URL : " + url);
        System.out.println("Post parameters : " + urlParameters);
        System.out.println("Response Code : " + responseCode);
        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
        //print result
        System.out.println(response.toString());
    }
}
Answer 2
  • Учим, что такое HTTP
  • Потом учим, что такое JSON
  • Потом смотрим как сформировать и выполнить HTTP запрос в Java
  • ?????????
  • PROFIT!

Учить в сторону Apache HttpClient, Jackson/GSON

Простую консольную программу на Java Вы, надеюсь, знаете как написать?

READ ALSO
Поиск по одному полю Hibernate

Поиск по одному полю Hibernate

Я новичек в Hibernate

307
Отслеживание действия garbage collector в java

Отслеживание действия garbage collector в java

Есть ли какой нибудь способ отслеживать в программе действия garbage collector? например писать в логи все его похождениявот он запустился, прошелся...

233
Ошибка Android Studio + VK SDK

Ошибка Android Studio + VK SDK

Всем привет!

303
Удаление элемент списка RecyclerView

Удаление элемент списка RecyclerView

В моем приложении есть RecyclerViewМне необходимо реализовать визуальное удаление элемента списка RecyclerView при нажатии на кнопку (Кнопка указана...

294