Не могу смоделировать запрос Почтальона в Java - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь войти на портал. Работает с почтальоном. Когда я пытаюсь выполнить тот же запрос с использованием простой Java или OkHttp, вход в систему завершается неудачно, и я перенаправляюсь на страницу входа.

    HttpUrl.Builder httpBuilder = HttpUrl.parse("https://test58.cashctrl.com/auth/login.html").newBuilder();
    httpBuilder.addQueryParameter("JMCF_AUTH_EMAIL", "email");
    httpBuilder.addQueryParameter("JMCF_AUTH_PASSWORD", "password");

    Request request = new Request.Builder()
            .url(httpBuilder.build())
            .get()
            .build();

Я знаю, что URL выглядит странно, но он работает таким образом, используя Postman или даже просто использует браузер.

Альтернатива с простой Java, которую я пробовал:

    Map<String, String> parameters = new HashMap<>();
    parameters.put(PARAM_EMAIL, EMAIL);
    parameters.put(PARAM_PASSWORD, PASSWORD);


    URL url = new URL(LOGIN_URL + "?" + ParameterStringBuilder.getParamsString(parameters));
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("POST");
    con.setInstanceFollowRedirects(true);


    con.setDoOutput(true);
    DataOutputStream out = new DataOutputStream(con.getOutputStream());
    out.writeBytes(ParameterStringBuilder.getParamsString(parameters));
    out.flush();
    out.close();

    int status = con.getResponseCode();

    BufferedReader in = new BufferedReader(
            new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer content = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        content.append(inputLine + "\n");
    }
    in.close();

    con.disconnect();
    System.out.println(status);
    System.out.println(content.toString());

Почтальон должен делать что-то особенное или браузер, которого я не вижу.

1 Ответ

0 голосов
/ 02 июля 2019

У меня была та же проблема, я узнал, что у Почтальона есть функция «кода». Ниже кнопки отправки вы можете увидеть опцию кода, он сгенерирует код для вас. Существует список языков на выбор, и Java является одним из них. Проверьте это. Кроме того, вы должны пропустить куки, посмотрите, что временные заголовки в Postman добавят все в ваш код и включают куки.

Спасибо, надеюсь, это поможет.

...