Skip to content
Snippets Groups Projects
Commit 590f4f41 authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

Modernisation des appels à des anciennes méthodes & mise en static public de config

parent f0207a49
No related branches found
No related tags found
No related merge requests found
Pipeline #186 passed
...@@ -25,8 +25,8 @@ ...@@ -25,8 +25,8 @@
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version> <version>3.8.1</version>
<configuration> <configuration>
<source>9</source> <source>17</source>
<target>9</target> <target>17</target>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
......
...@@ -49,7 +49,7 @@ import java.util.regex.Pattern; ...@@ -49,7 +49,7 @@ import java.util.regex.Pattern;
public final class Main extends JavaPlugin implements Listener { public final class Main extends JavaPlugin implements Listener {
// Variables // Variables
private static FileConfiguration config; public static FileConfiguration config;
public static LuckPerms luckPermsApi; public static LuckPerms luckPermsApi;
public static String pluginName; public static String pluginName;
......
package com.slprojects.slcraftplugin.utils.web; package com.slprojects.slcraftplugin.utils.web;
import java.net.HttpURLConnection; import com.slprojects.slcraftplugin.Main;
import java.net.URL; import com.slprojects.slcraftplugin.utils.ConsoleLog;
import java.io.BufferedReader;
import java.io.InputStreamReader; import java.net.URI;
import java.io.OutputStream; import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;
/** /**
* Client HTTP asynchrone * Client HTTP asynchrone
*/ */
public class AsyncHttpClient { public class AsyncHttpClient {
private final HttpClient httpClient;
public AsyncHttpClient() {
this.httpClient = HttpClient.newBuilder().build();
}
/** /**
* Effectue une requête GET * Effectue une requête GET
*
* @param urlString URL * @param urlString URL
* @return Réponse * @return Réponse
*/ */
public CompletableFuture<String> get(String urlString) { public CompletableFuture<String> get(String urlString) {
return CompletableFuture.supplyAsync(() -> { HttpRequest request = HttpRequest.newBuilder()
try { .uri(URI.create(urlString))
URL url = new URL(urlString); .header("User-Agent", Main.config.getString("name") + " " + Main.config.getString("version"))
HttpURLConnection con = (HttpURLConnection) url.openConnection(); .header("Server-Type", Main.config.getString("server-type"))
con.setRequestMethod("GET"); .GET()
con.setConnectTimeout(5000); .build();
con.setReadTimeout(5000);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); return httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString())
StringBuilder response = new StringBuilder(); .thenApply(HttpResponse::body)
String inputLine; .exceptionally(ex -> {
ConsoleLog.danger("Erreur lors de la requête GET vers " + urlString);
while ((inputLine = in.readLine()) != null) { ConsoleLog.danger(ex.getMessage());
response.append(inputLine);
}
in.close();
con.disconnect();
return response.toString();
} catch (Exception ex) {
ex.printStackTrace();
return null; return null;
}
}); });
} }
/** /**
* Effectue une requête GET avec des headers * Effectue une requête GET avec des headers
*
* @param urlString URL * @param urlString URL
* @param postDataBuilder Données POST * @param postDataBuilder Données POST
* @param headers Headers * @param headers Headers
* @return Réponse * @return Réponse
*/ */
public CompletableFuture<String> post(String urlString, PostDataBuilder postDataBuilder, Map<String, String> headers) { public CompletableFuture<String> post(String urlString, PostDataBuilder postDataBuilder, Map<String, String> headers) {
return CompletableFuture.supplyAsync(() -> { HttpRequest request = HttpRequest.newBuilder()
try { .uri(URI.create(urlString))
URL url = new URL(urlString); .header("User-Agent", Main.config.getString("name") + " " + Main.config.getString("version"))
HttpURLConnection con = (HttpURLConnection) url.openConnection(); .header("Server-Type", Main.config.getString("server-type"))
con.setRequestMethod("POST"); .headers(headers.entrySet().stream()
con.setConnectTimeout(5000); .flatMap(entry -> Stream.of(entry.getKey(), entry.getValue()))
con.setReadTimeout(5000); .toArray(String[]::new))
.POST(HttpRequest.BodyPublishers.ofString(postDataBuilder.build()))
.build();
// Set request headers return httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString())
headers.forEach(con::setRequestProperty); .thenApply(HttpResponse::body)
.exceptionally(ex -> {
con.setDoOutput(true); ConsoleLog.danger("Erreur lors de la requête POST vers " + urlString);
ConsoleLog.danger(ex.getMessage());
// Write the request body
try (OutputStream os = con.getOutputStream()) {
byte[] input = postDataBuilder.build().getBytes("utf-8");
os.write(input, 0, input.length);
}
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
StringBuilder response = new StringBuilder();
String inputLine;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
con.disconnect();
return response.toString();
} catch (Exception ex) {
ex.printStackTrace();
return null; return null;
}
}); });
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment