OkHttp. Отправка результата и получение таблицы рекордов
- import java.io.IOException;
- import java.util.Random;
- import okhttp3.MultipartBody;
- import okhttp3.OkHttpClient;
- import okhttp3.Request;
- import okhttp3.RequestBody;
- import okhttp3.Response;
- import org.json.JSONArray;
- import org.json.JSONObject;
- public final class HiScoreOkHttpExample {
- private static final String API_URL = "http://localhost:8080/hiscore.php";
- public static void main(String[] args) throws IOException {
- Random random = new Random();
- String[] names = {"Паша", "Света", "Олег", "Ярик", "Виола", "Миша", "Оля", "Петя"};
- HiScoreOkHttpExample hiscore = new HiScoreOkHttpExample();
- // Добавляем три результата
- for (int i = 1; i <= 3; i++) {
- String name = names[random.nextInt(names.length)];
- int score = random.nextInt(900) + 100;
- hiscore.add(name, score);
- }
- // Выводим таблицу рекордов
- hiscore.show();
- }
- private final OkHttpClient client = new OkHttpClient();
- public void add(String name, int score) throws IOException {
- RequestBody body = new MultipartBody.Builder()
- .setType(MultipartBody.FORM)
- .addFormDataPart("action", "set")
- .addFormDataPart("name", name)
- .addFormDataPart("score", Integer.toString(score))
- .build();
- Request request = new Request.Builder()
- .url(API_URL)
- .post(body)
- .build();
- Response response = client.newCall(request).execute();
- if (response.code() == 200) {
- // HTTP 200 OK
- System.out.println("Успешно добавлено");
- return;
- }
- // Произошла ошибка
- String responseText = response.body().string();
- JSONObject result = new JSONObject(responseText);
- System.out.println("Ошибка");
- System.out.println(result.getString("error"));
- }
- public void show() throws IOException {
- Request request = new Request.Builder()
- .url(API_URL + "?action=get")
- .build();
- Response response = client.newCall(request).execute();
- String responseText = response.body().string();
- // Выводим результат
- JSONArray scores = new JSONArray(responseText);
- int length = scores.length();
- for (int i = 0; i < length; i++) {
- JSONObject score = scores.getJSONObject(i);
- System.out.format("%d. %12s %8d %20s%n", i + 1,
- score.getString("name"), score.getInt("score"),
- score.getString("date"));
- }
- }
- }
- dependencies {
- compile 'org.json:json:20160810'
- compile 'com.squareup.okhttp3:okhttp:3.6.0'
- }
Пример обращения к серверу, для обработки игровых результатов. Используется библиотека OkHttp.
Отправляет три результата, посылая POST-запрос и проверяя успешность добавления.
Затем выводит таблицу рекордов, обращаясь к API для получения данных в формате json.
Отправляет три результата, посылая POST-запрос и проверяя успешность добавления.
Затем выводит таблицу рекордов, обращаясь к API для получения данных в формате json.