我有一个 POST 请求代码,由于某种原因它不起作用
I have a POST request code which doesn't work for some reason
发送了所有隐藏值,发送了正确的登录详细信息,发送了 cookie,但仍然无法正常工作。我看过一些教程,但我觉得那里给出的例子有点简单,而且我是 Jsoup 的新手。
import java.io.IOException;
import java.util.HashMap;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class example{
public static void main( String[] args ) throws IOException{
final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36";
final String LOGIN_FORM_URL = "https://login.gitam.edu/Login.aspx";
final String LOGIN_ACTION_URL = "https://login.gitam.edu/Login.aspx";
final String USERNAME = "mysusername";
final String PASSWORD = "mypassword";
Connection.Response loginForm = Jsoup.connect(LOGIN_FORM_URL)
.method(Connection.Method.GET)
.userAgent(USER_AGENT)
.execute();
HashMap<String, String> cookies = new HashMap<>(loginForm.cookies());
Document loginDoc = loginForm.parse();
String viewstategenerator = loginDoc.getElementById("__VIEWSTATEGENERATOR").val();
String eventtarget = loginDoc.getElementById("__EVENTTARGET").val();
String eventargument = loginDoc.getElementById("__EVENTARGUMENT").val();
String viewstate = loginDoc.getElementById("__VIEWSTATE").val();
String eventvalidation = loginDoc.getElementById("__EVENTVALIDATION").val();
HashMap<String, String> formData = new HashMap<>();
formData.put("__VIEWSTATEGENERATOR", viewstategenerator);
formData.put("__EVENTTARGET", eventtarget);
formData.put("__EVENTARGUMENT", eventargument);
formData.put("__VIEWSTATE", viewstate);
formData.put("__EVENTVALIDATION", eventvalidation);
formData.put("txtusername", USERNAME);
formData.put("password", PASSWORD);
formData.put("Submit", "Login");
Connection.Response homePage = Jsoup.connect(LOGIN_ACTION_URL)
.cookies(cookies)
.data(formData)
.method(Connection.Method.POST)
.userAgent(USER_AGENT)
.execute();
System.out.println(homePage.parse().html());
}
}
我已经发送了 cookie 和所有其他隐藏值,但我仍然没有得到我想要的输出。 (我只想要登录后页面的 html 来源)。
好的,找到解决办法了。使用的请求,来自 bs4 的 BeautifulSoup 和来自请求的会话。我可以登录该网站并获取我想要的任何数据。
发送了所有隐藏值,发送了正确的登录详细信息,发送了 cookie,但仍然无法正常工作。我看过一些教程,但我觉得那里给出的例子有点简单,而且我是 Jsoup 的新手。
import java.io.IOException;
import java.util.HashMap;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class example{
public static void main( String[] args ) throws IOException{
final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36";
final String LOGIN_FORM_URL = "https://login.gitam.edu/Login.aspx";
final String LOGIN_ACTION_URL = "https://login.gitam.edu/Login.aspx";
final String USERNAME = "mysusername";
final String PASSWORD = "mypassword";
Connection.Response loginForm = Jsoup.connect(LOGIN_FORM_URL)
.method(Connection.Method.GET)
.userAgent(USER_AGENT)
.execute();
HashMap<String, String> cookies = new HashMap<>(loginForm.cookies());
Document loginDoc = loginForm.parse();
String viewstategenerator = loginDoc.getElementById("__VIEWSTATEGENERATOR").val();
String eventtarget = loginDoc.getElementById("__EVENTTARGET").val();
String eventargument = loginDoc.getElementById("__EVENTARGUMENT").val();
String viewstate = loginDoc.getElementById("__VIEWSTATE").val();
String eventvalidation = loginDoc.getElementById("__EVENTVALIDATION").val();
HashMap<String, String> formData = new HashMap<>();
formData.put("__VIEWSTATEGENERATOR", viewstategenerator);
formData.put("__EVENTTARGET", eventtarget);
formData.put("__EVENTARGUMENT", eventargument);
formData.put("__VIEWSTATE", viewstate);
formData.put("__EVENTVALIDATION", eventvalidation);
formData.put("txtusername", USERNAME);
formData.put("password", PASSWORD);
formData.put("Submit", "Login");
Connection.Response homePage = Jsoup.connect(LOGIN_ACTION_URL)
.cookies(cookies)
.data(formData)
.method(Connection.Method.POST)
.userAgent(USER_AGENT)
.execute();
System.out.println(homePage.parse().html());
}
}
我已经发送了 cookie 和所有其他隐藏值,但我仍然没有得到我想要的输出。 (我只想要登录后页面的 html 来源)。
好的,找到解决办法了。使用的请求,来自 bs4 的 BeautifulSoup 和来自请求的会话。我可以登录该网站并获取我想要的任何数据。