parent
574a403f63
commit
1afe6eb0ba
@ -0,0 +1,20 @@ |
||||
package sig; |
||||
import java.io.IOException; |
||||
import java.net.URI; |
||||
import java.net.URISyntaxException; |
||||
import java.net.http.HttpRequest; |
||||
import java.net.http.HttpResponse; |
||||
import java.net.http.HttpResponse.BodyHandlers; |
||||
|
||||
import sig.exceptions.FailedResponseException; |
||||
import sig.requests.GETRequest; |
||||
public class client { |
||||
public static void main(String[] args) { |
||||
try { |
||||
GETRequest res = new GETRequest("https://postman-echo.com/get"); |
||||
System.out.println(((HttpResponse<String>)res.run()).body()); |
||||
} catch (FailedResponseException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,7 @@ |
||||
package sig.exceptions; |
||||
|
||||
public class FailedResponseException extends Exception{ |
||||
public FailedResponseException(String msg) { |
||||
super(msg); |
||||
} |
||||
} |
@ -0,0 +1,67 @@ |
||||
package sig.requests; |
||||
|
||||
import java.io.File; |
||||
import java.io.IOException; |
||||
import java.net.URI; |
||||
import java.net.URISyntaxException; |
||||
import java.net.http.HttpClient; |
||||
import java.net.http.HttpRequest; |
||||
import java.net.http.HttpResponse; |
||||
import java.net.http.HttpResponse.BodyHandlers; |
||||
import java.nio.file.Path; |
||||
import java.time.Duration; |
||||
|
||||
import sig.exceptions.FailedResponseException; |
||||
|
||||
public class GETRequest{ |
||||
String url; |
||||
String[] headers; |
||||
long timeout; |
||||
Path file; |
||||
private HttpRequest req; |
||||
private HttpClient client; |
||||
/** |
||||
* @param file The file path info, use this for file downloads or set to null for standard text. |
||||
* @param timeout in milliseconds |
||||
* */ |
||||
public GETRequest(String url, long timeout, Path file, String...headers){ |
||||
this.url = url; |
||||
this.headers = headers; |
||||
this.timeout = timeout; |
||||
this.file=file; |
||||
build(); |
||||
} |
||||
/** |
||||
* @param timeout in milliseconds |
||||
* */ |
||||
public GETRequest(String url, long timeout, String...headers){ |
||||
this(url,timeout,null,headers); |
||||
} |
||||
public GETRequest(String url){ |
||||
this(url,30000,"default","default"); |
||||
} |
||||
public HttpResponse<?> run() throws FailedResponseException { |
||||
try { |
||||
if (file==null) { |
||||
return client.send(req,BodyHandlers.ofString()); |
||||
} else { |
||||
return client.send(req,BodyHandlers.ofFile(file)); |
||||
} |
||||
} catch (IOException | InterruptedException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
throw new FailedResponseException("No proper response returned. THIS SHOULD NOT BE HAPPENING!"); |
||||
} |
||||
private void build(){ |
||||
try { |
||||
req = HttpRequest.newBuilder(new URI(url)) |
||||
.version(HttpClient.Version.HTTP_2) |
||||
.headers(headers) |
||||
.timeout(Duration.ofMillis(timeout)) |
||||
.GET().build(); |
||||
client = HttpClient.newBuilder().build(); |
||||
} catch (URISyntaxException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue