Httpurlconnection параметр с пробелом - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь использовать httpurlconnection для публикации параметров в URL.httpurlconnection, кажется, отправляет нормально при публикации значений без пробелов, однако проблема возникает, когда что-то вроде submit=Login Account, который содержит пробел.Я попытался использовать символ плюс и %20 вместо пробела, однако мне не удалось отправить форму.

String requestParameters =“password=test123&confirm=test123&id=2869483&submit=Login Account”;

функция публикации

public static String postURL(String urlString, String parameters, int timeout, Proxy proxy, String accept, String acceptEncoding, String userAgent, String acceptLanguage) throws IOException {
            URL address = new URL(urlString);
            HttpURLConnection httpConnection = (HttpURLConnection) address.openConnection(proxy);
            httpConnection.setRequestMethod("POST");
            httpConnection.addRequestProperty("Accept", accept);
            httpConnection.addRequestProperty("Accept-Encoding", acceptEncoding);
            httpConnection.addRequestProperty("User-Agent", userAgent);
            httpConnection.addRequestProperty("Accept-Language", acceptLanguage);
            httpConnection.addRequestProperty("Connection", "keep-alive");
            httpConnection.setDoOutput(true);
            httpConnection.setConnectTimeout(timeout);
            httpConnection.setReadTimeout(timeout);
            DataOutputStream wr = new DataOutputStream(httpConnection.getOutputStream());
            wr.writeBytes(parameters);
            wr.flush();
            wr.close();
            httpConnection.disconnect();
            BufferedReader in = new BufferedReader(new InputStreamReader(httpConnection.getInputStream()));
            StringBuffer response = new StringBuffer();
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            String result = response.toString();
            in.close();
            return result;
        }

запрос на публикацию с использованием функции публикации

    *
            ArrayList<unlock> ns = new ArrayList<>();
            try {
                ns = methods.UnlockRequest("register@test.com");// gets urls from database.
            } catch (IOException e) {
                e.printStackTrace();
            }
            String s = ns.get(0).toString(); // gets first url in list
            url=s; // sets url to s
            String[] st= url.split("id="); // splits url to get id
            System.out.println(url);
            System.out.println(st[1]);
            System.out.println("accounts class reached");
            String  requestParameters = null;
                requestParameters = "password=test123&confirm=test123&id=2869483&submit=Login Account”;
            System.out.println(requestParameters);
            ConnectionSettings connectionSettings = Variables.get().getConnectionSettings();
            String creation = "";
            System.out.println(Variables.get().getCaptchaSolution());
            try {
                if (connectionSettings.isProxyCreation()) {
                    creation = HTTPRequests.postURL(url, requestParameters, 30000, connectionSettings.getProxy(), connectionSettings.getAcceptCriteria(), connectionSettings.getAcceptEncoding(),
                            connectionSettings.getUserAgent(), connectionSettings.getAcceptLanguage());
                } 
            } catch (FileNotFoundException e) {
                System.out.println(ColoredText.criticalMessage("Error: Your IP is banned from requesting. Ending script."));
                Variables.get().setStopScript(true);
            } catch (IOException e) {
                e.printStackTrace();
                Variables.get().setStopScript(true);
            }

*
...