Проблемы с получением запросов на извлечение GitHub по диапазону дат в Java с использованием OkHttpJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблемы с получением запросов на извлечение GitHub по диапазону дат в Java с использованием OkHttp

Сообщение Anonymous »

Я работаю над программой Java для получения запросов на включение из репозитория GitHub в пределах указанного диапазона дат с помощью OkHttp и API GitHub. Однако я сталкиваюсь с проблемами, из-за которых код неправильно фильтрует запросы на включение в зависимости от диапазона дат.
Я использую OkHttp для выполнения запроса GET. к API GitHub для получения запросов на включение из определенного репозитория.
Я хочу фильтровать запросы на включение по дате их создания, и я использую параметр «создан» в API URL-адрес для указания диапазона дат. Даты правильно отформатированы в формате ISO 8601 («гггг-ММ-дд»).
Несмотря на установку диапазона дат, ответ API, похоже, не фильтрует запросы на включение, как ожидал. Я по-прежнему получаю запросы на включение за пределами указанного диапазона дат.

Код: Выделить всё

package ConsumeGithubAPI;

import com.google.gson.*;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

import java.io.IOException;

public class ConsumeGithubAPI {
public static void main(String[] args) {
JsonArray pullRequests = getPullRequests("-Owner-", "-reponame-", "2022-06-01", "2022-07-10");
String formattedOutput = formatOutput(pullRequests);
System.out.println(formattedOutput);
}

public static JsonArray getPullRequests(String owner, String repositoryName, String startDate, String endDate) {

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://api.github.com/repos/" + owner + "/" + repositoryName + "/pulls" +
"?state=all&per_page=100&page=1" +
"&since=" + startDate + "T00:00:00Z" +
"&until=" + endDate + "T23:59:59Z")
.addHeader("Authorization", "-token-")
.build();
JsonArray modifiedPRs = new JsonArray();
try {
Response response = client.newCall(request).execute();
String responseBody = response.body().string();

JsonArray pullRequests = JsonParser.parseString(responseBody).getAsJsonArray();

for (JsonElement pR : pullRequests) {
JsonObject prObject = pR.getAsJsonObject();
JsonObject prData = new JsonObject();
prData.addProperty("id", prObject.get("id").getAsBigInteger());
prData.addProperty("user", prObject.get("user").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());
modifiedPRs.add(prData);

}
response.close();
return modifiedPRs;
} catch (IOException e) {
e.printStackTrace();
}
return modifiedPRs;
}

private static String formatOutput(JsonArray jsonArray) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
return gson.toJson(jsonArray);
}
}

Что я пробовал:
Я проверил форматирование даты, чтобы убедиться, что оно правильное.
Я проверил, что репозиторий существует и содержит запросы на включение в указанном диапазоне дат.
Я просмотрел документацию GitHub API, чтобы убедиться в правильности использования параметров.

Подробнее здесь: https://stackoverflow.com/questions/770 ... ing-okhttp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»