我正在尝试登录门户。它可以使用邮递员工作。当我使用纯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();
我知道网址看起来很奇怪,但是使用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());
邮递员一定在做一些特别的事情,或者还在做我没有看到的浏览器。
答案 0 :(得分:1)
我遇到了同样的问题,我知道邮递员具有“代码”功能。在发送按钮下方,您可以看到代码选项,它将为您生成代码。有多种语言可供选择,java是其中之一。请检查一下。另外,您必须缺少Cookie,请参阅Postman中的临时标头将所有代码添加到代码中,并包含一个cookie。
谢谢,希望对您有帮助。