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