66import com .github .kayjamlang .executor .Context ;
77import com .github .kayjamlang .executor .libs .Library ;
88import com .github .kayjamlang .executor .libs .main .MapClass ;
9+ import org .mozilla .universalchardet .UniversalDetector ;
910
1011import java .io .BufferedReader ;
12+ import java .io .InputStream ;
1113import java .io .InputStreamReader ;
1214import java .net .HttpURLConnection ;
1315import java .net .URL ;
1416import java .net .URLEncoder ;
1517import java .util .ArrayList ;
1618import java .util .List ;
1719import java .util .Map ;
20+ import java .util .Scanner ;
1821
1922public class RequestLibrary extends Library {
2023
@@ -25,10 +28,10 @@ public RequestLibrary() throws Exception {
2528
2629 List <String > query = new ArrayList <>();
2730 for (Map .Entry <Object , Object > entry : queryMap .entrySet ()){
28- query .add (entry .getKey ()+"=" +URLEncoder .encode (( String ) entry .getValue (), "UTF-8" ));
31+ query .add (entry .getKey ()+"=" +URLEncoder .encode (entry .getValue (). toString (), "UTF-8" ));
2932 }
3033
31- return query . toString ( );
34+ return String . join ( "&" , query );
3235 }, new Argument (new Type ("map" , ClassContainer .class , false ),
3336 "query" )));
3437
@@ -46,11 +49,13 @@ public RequestLibrary() throws Exception {
4649 connection .setRequestMethod ((String ) context .parentContext .variables .get ("method" ));
4750
4851 StringBuilder response = new StringBuilder ();
49- try (BufferedReader in = new BufferedReader (new InputStreamReader (connection .getInputStream ()))){
50- String inputLine ;
52+ InputStream inputStream = connection .getResponseCode ()==200 ?
53+ connection .getInputStream ()
54+ :connection .getErrorStream ();
55+ try (Scanner scanner = new Scanner (inputStream , "UTF-8" )){
5156
52- while (( inputLine = in . readLine ()) != null )
53- response .append (inputLine );
57+ while (scanner . hasNextLine () )
58+ response .append (scanner . nextLine () );
5459 }
5560
5661 return response .toString ();
0 commit comments