Allow for x-www-form-urlencoded whatever

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
main
sigonasr2 2 years ago
parent 8ce19b6377
commit fd43413fb8
  1. 1
      .gitignore
  2. 54
      src/sig/client.java
  3. 7
      src/sig/requests/POSTRequest.java

1
.gitignore vendored

@ -1 +1,2 @@
*.class *.class
.clientsecret

@ -1,18 +1,59 @@
package sig; package sig;
import java.io.IOException;
import java.net.URLEncoder;
import java.net.http.HttpResponse; import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.HashMap;
import sig.exceptions.FailedResponseException; import sig.exceptions.FailedResponseException;
import sig.requests.GETRequest; import sig.requests.GETRequest;
import sig.requests.POSTRequest; import sig.requests.POSTRequest;
public class client { public class client {
static String SECRET = "";
private static String JSON(HashMap<String, Object> testMap) {
StringBuilder sb = new StringBuilder();
String temp = testMap.toString();
if (temp.charAt(0)=='{') {
sb.append("{");
int marker=1;
boolean ending=false;
while (marker<temp.length()) {
if (!ending&&temp.charAt(marker)!=' '&&temp.charAt(marker)!='{'&&temp.charAt(marker)!='}') {
ending=true;
sb.append("\"");
} else
if (ending&&(temp.charAt(marker)=='='||temp.charAt(marker)==','||temp.charAt(marker)=='}')) {
ending=false;
sb.append("\"");
}
if (!ending&&temp.charAt(marker)=='=') {
sb.append(':');
} else {
sb.append(temp.charAt(marker));
}
marker++;
}
} else {
throw new UnsupportedOperationException("Not valid JSON!");
}
return sb.toString();
}
public static void main(String[] args) { public static void main(String[] args) {
try {
SECRET = Files.readAllLines(Path.of("..",".clientsecret")).get(0);
} catch (IOException e1) {
e1.printStackTrace();
}
try { try {
//Regular get request: //Regular get request:
GETRequest res = new GETRequest("https://postman-echo.com/get?foo1=bar1&foo2=bar2"); //GETRequest res = new GETRequest("https://postman-echo.com/get?foo1=bar1&foo2=bar2");
System.out.println(((HttpResponse<String>)res.run()).body()); //System.out.println(((HttpResponse<String>)res.run()).body());
/*GET Block /*GET Block
@ -36,9 +77,16 @@ public class client {
res = new GETRequest("https://postman-echo.com/basic-auth","postman","password",30000,null); res = new GETRequest("https://postman-echo.com/basic-auth","postman","password",30000,null);
System.out.println(((HttpResponse<String>)res.run()).body()); System.out.println(((HttpResponse<String>)res.run()).body());
*/ */
/*GETRequest res = new GETRequest("https://api.twitch.tv/helix/users?login=sigonitori",30000,"Client-Id","otppg8l1x7xbrfnqex1np1qba47mzf");
System.out.println(((HttpResponse<String>)res.run()).body());*/
HashMap<String,Object> obj = new HashMap();
obj.put("type","stream.online");
obj.put("version","1");
obj.put("version","1");
//Regular POST request with body: //Regular POST request with body:
POSTRequest postRes = new POSTRequest("https://8080-sigonasr2-sigplace-5j5fknii87n.ws-us54.gitpod.io/","Test a longer body\nwith much more\nlines now.\n\n"); POSTRequest postRes = new POSTRequest("https://id.twitch.tv/oauth2/token","client_id=otppg8l1x7xbrfnqex1np1qba47mzf&client_secret="+SECRET+"&grant_type=client_credentials");
postRes.setContentType("application/x-www-form-urlencoded");
System.out.println(((HttpResponse<String>)postRes.run()).body()); System.out.println(((HttpResponse<String>)postRes.run()).body());
/* /*

@ -22,6 +22,11 @@ public class POSTRequest extends GETRequest{
String body = ""; String body = "";
Path uploadFile = null; Path uploadFile = null;
String contentType = "application/json";
public void setContentType(String contentType) {
this.contentType = contentType;
}
public POSTRequest(String url, String body, String username, String password, long timeout, Path outputFile, String... headers) { public POSTRequest(String url, String body, String username, String password, long timeout, Path outputFile, String... headers) {
super(url, username, password, timeout, outputFile, headers); super(url, username, password, timeout, outputFile, headers);
@ -111,7 +116,7 @@ public class POSTRequest extends GETRequest{
@Override @Override
protected java.net.http.HttpRequest.Builder finalizeRequestPreBuild( protected java.net.http.HttpRequest.Builder finalizeRequestPreBuild(
java.net.http.HttpRequest.Builder requestBuild) throws FailedResponseException{ java.net.http.HttpRequest.Builder requestBuild) throws FailedResponseException{
requestBuild.headers("Content-Type","application/json"); requestBuild.headers("Content-Type",contentType);
try { try {
return file!=null?requestBuild.POST(HttpRequest.BodyPublishers.ofFile(file)): return file!=null?requestBuild.POST(HttpRequest.BodyPublishers.ofFile(file)):
body.length()>0?requestBuild.POST(HttpRequest.BodyPublishers.ofString(body)): body.length()>0?requestBuild.POST(HttpRequest.BodyPublishers.ofString(body)):

Loading…
Cancel
Save