Проблемы с получением запросов на извлечение GitHub по диапазону дат в Java с использованием OkHttp ⇐ JAVA
-
Гость
Проблемы с получением запросов на извлечение GitHub по диапазону дат в Java с использованием OkHttp
Я работаю над программой Java для получения запросов на включение из репозитория GitHub в пределах указанного диапазона дат, используя OkHttp и API GitHub. Однако я сталкиваюсь с проблемами, из-за которых код неправильно фильтрует запросы на включение на основе диапазона дат.
Я использую OkHttp, чтобы отправить запрос GET к API GitHub для получения запросов на включение из определенного репозитория.
Я хочу фильтровать запросы на включение по дате их создания и использую параметр «создан» в URL-адресе API, чтобы указать диапазон дат. Даты правильно отформатированы в формате ISO 8601 («гггг-ММ-дд»).
Несмотря на настройку диапазона дат, ответ API, похоже, не фильтрует запросы на включение, как ожидалось. Я по-прежнему получаю запросы на включение за пределами указанного диапазона дат.
пакет ConsumeGithubAPI; импортировать com.google.gson.*; импортировать okhttp3.OkHttpClient; импортировать okhttp3.Request; импортировать okhttp3.Response; импортировать java.io.IOException; общественный класс ConsumeGithubAPI { public static void main(String[] args) { JsonArray pullRequests = getPullRequests("-Owner-", "-reponame-", "2022-06-01", "2022-07-10"); Строка formattedOutput = formatOutput(pullRequests); System.out.println(formattedOutput); } public static JsonArray getPullRequests (владелец строки, имя репозитория строки, строка startDate, строка endDate) { Клиент OkHttpClient = новый OkHttpClient(); Запрос запроса = новый Request.Builder() .url("https://api.github.com/repos/" + владелец + "/" + имя репозитория + "/pulls" + "?state=all&per_page=100&page=1" + "&since=" + startDate + "T00:00:00Z" + "&until=" + endDate + "T23:59:59Z") .addHeader("Авторизация", "-токен-") .строить(); JsonArray модифицированныйPRs = новый JsonArray(); пытаться { Ответ ответа = client.newCall(request).execute(); Строка responseBody = response.body().string(); JsonArray pullRequests = JsonParser.parseString(responseBody).getAsJsonArray(); for (JsonElement pR: pullRequests) { JsonObject prObject = pR.getAsJsonObject(); JsonObject prData = новый JsonObject(); prData.addProperty("id", prObject.get("id").getAsBigInteger()); prData.addProperty("пользователь", prObject.get("пользователь").getAsJsonObject().get("login").getAsString()); prData.addProperty("title", prObject.get("title").getAsString()); prData.addProperty("state", prObject.get("state").getAsString()); prData.addProperty("created_at", prObject.get("created_at").getAsString()); модифицированныйPRs.add(prData); } ответ.закрыть(); вернуть измененные PR; } catch (IOException e) { е.printStackTrace(); } вернуть измененные PR; } частная статическая строка formatOutput (JsonArray jsonArray) { Gson gson = новый GsonBuilder().setPrettyPrinting().create(); вернуть gson.toJson(jsonArray); } } Что я пробовал:
Я проверил формат даты, чтобы убедиться в его правильности. Я проверил, что репозиторий существует и содержит запросы на включение в указанном диапазоне дат. Я просмотрел документацию GitHub API, чтобы убедиться в правильности использования параметров.
Я работаю над программой Java для получения запросов на включение из репозитория GitHub в пределах указанного диапазона дат, используя OkHttp и API GitHub. Однако я сталкиваюсь с проблемами, из-за которых код неправильно фильтрует запросы на включение на основе диапазона дат.
Я использую OkHttp, чтобы отправить запрос GET к API GitHub для получения запросов на включение из определенного репозитория.
Я хочу фильтровать запросы на включение по дате их создания и использую параметр «создан» в URL-адресе API, чтобы указать диапазон дат. Даты правильно отформатированы в формате ISO 8601 («гггг-ММ-дд»).
Несмотря на настройку диапазона дат, ответ API, похоже, не фильтрует запросы на включение, как ожидалось. Я по-прежнему получаю запросы на включение за пределами указанного диапазона дат.
пакет ConsumeGithubAPI; импортировать com.google.gson.*; импортировать okhttp3.OkHttpClient; импортировать okhttp3.Request; импортировать okhttp3.Response; импортировать java.io.IOException; общественный класс ConsumeGithubAPI { public static void main(String[] args) { JsonArray pullRequests = getPullRequests("-Owner-", "-reponame-", "2022-06-01", "2022-07-10"); Строка formattedOutput = formatOutput(pullRequests); System.out.println(formattedOutput); } public static JsonArray getPullRequests (владелец строки, имя репозитория строки, строка startDate, строка endDate) { Клиент OkHttpClient = новый OkHttpClient(); Запрос запроса = новый Request.Builder() .url("https://api.github.com/repos/" + владелец + "/" + имя репозитория + "/pulls" + "?state=all&per_page=100&page=1" + "&since=" + startDate + "T00:00:00Z" + "&until=" + endDate + "T23:59:59Z") .addHeader("Авторизация", "-токен-") .строить(); JsonArray модифицированныйPRs = новый JsonArray(); пытаться { Ответ ответа = client.newCall(request).execute(); Строка responseBody = response.body().string(); JsonArray pullRequests = JsonParser.parseString(responseBody).getAsJsonArray(); for (JsonElement pR: pullRequests) { JsonObject prObject = pR.getAsJsonObject(); JsonObject prData = новый JsonObject(); prData.addProperty("id", prObject.get("id").getAsBigInteger()); prData.addProperty("пользователь", prObject.get("пользователь").getAsJsonObject().get("login").getAsString()); prData.addProperty("title", prObject.get("title").getAsString()); prData.addProperty("state", prObject.get("state").getAsString()); prData.addProperty("created_at", prObject.get("created_at").getAsString()); модифицированныйPRs.add(prData); } ответ.закрыть(); вернуть измененные PR; } catch (IOException e) { е.printStackTrace(); } вернуть измененные PR; } частная статическая строка formatOutput (JsonArray jsonArray) { Gson gson = новый GsonBuilder().setPrettyPrinting().create(); вернуть gson.toJson(jsonArray); } } Что я пробовал:
Я проверил формат даты, чтобы убедиться в его правильности. Я проверил, что репозиторий существует и содержит запросы на включение в указанном диапазоне дат. Я просмотрел документацию GitHub API, чтобы убедиться в правильности использования параметров.
Мобильная версия