Reputation: 600
I am trying to submit a form of a website using jsoup. The problem is when I try to submit the form on web browser, an alert box pops up saying are you sure? Here is the snap of it
I tried to search everything to submit popup but couldn't find anything.
here is the code so far
package com.example.ebad.apppw;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.util.HashMap;
public class course_registration_post extends Activity {
String url = "http://111.68.99.8/StudentProfile/RegisterCourse.aspx";
HashMap<String, String> hashMaps;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.temp);
hashMaps = Data.map;
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new course_post().execute();
}
});
}
private class course_post extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
try
{
Connection.Response loginForm = Jsoup.connect(url).method(Connection.Method.GET).timeout(4000).execute();
Document document = loginForm.parse();
String viewstate2 = document.select("input[name=__VIEWSTATE]").attr("value");
String stategenerator2 = document.select("input[name=__VIEWSTATEGENERATOR]").attr("value");
String Eventvalidation2 = document.select("input[name=__EVENTVALIDATION]").attr("value");
Document doc = Jsoup.connect(url)
.cookies(hashMaps)
.data("__EVENTTARGET", "")
.data("__EVENTARGUMENT", "")
.data("__VIEWSTATE", viewstate2)
.data("__VIEWSTATEGENERATOR", stategenerator2)
.data("__VIEWSTATEENCRYPTED","")
.data("__EVENTVALIDATION", Eventvalidation2)
.data("ctl00$Body$COURSES_OFFERED$ctl06$cbox","on")
.data("ctl00$Body$RegisterButton", "Register Selected Courses")
.post();
/* JSContext context = new JSContext();
String script =
"function factorial(x) { var f = 1; for(; x > 1; x--) f *= x; return f; }\n" +
"var fact_a = factorial(a);\n";
context.evaluateScript(script);
*/
String s = doc.select("span[id=ctl00_MessageLabel]").text();
System.out.println(doc);
System.out.println(viewstate2);
System.out.println(stategenerator2);
System.out.println(Eventvalidation2);
System.out.println(s);
}catch (Exception e)
{
e.printStackTrace();}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
}
}
}
Here is the code of alert box I found on webiste
I have tried everything to make it work but I don't know what I am doing wrong. It would be really helpful if you guy help me solve this problem.
Here is the final state
__EVENTTARGET:
__EVENTARGUMENT:
__VIEWSTATE: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
__VIEWSTATEGENERATOR:1DA4211B
__VIEWSTATEENCRYPTED:
__EVENTVALIDATION:pVf4rtzUJV4wgdQx/akYk0gxfIjNV+uFZAXDbdglqD/e0WVKNzmOUJrcnI5ociekKl8I5T/ZeU8rhR6Slwemijo0RNWkupRo9ivsh0RC3WejftUnjRNbdBlqkS9g/jislasihd9ZJyKZLDmv0/chcscVIkgzGH/hW3cyHKZq83KkzdScHM5UWl7h87zcx7IA5DotWkh2vjEcMb6GjRUnl5R0I4ApoRUF4grYDM6lQOESzEMpW1FfS5n1aHzb49K69tesaRDRDrP0vSvpT7Hj/j40B+ectL0jpEUaiX8+fs88TKCzjGgqle/HYZudVz/Xle5nE5HZ+eX5tJE9RZYIjeZiwd/tThAJjRX/m2SE3Glql1uAIwpkb2zamffYRTZ5umLeHJk31ilK35x9D6nc9fdoatupTrHaPdUTbf4j+tnTpcTao1DEW9l536TQ9dZRDb6cMK6t7Kd5XTz8WX2UbfIvgnAIeqVod2XZqBKAHHDJoEyvDPQqLsOZ4Dh/14Jd
ctl00$Body$RegisterButton:Register Selected Courses
Upvotes: 2
Views: 1133
Reputation: 17765
Try this
Connection.Response loginForm = Jsoup
.connect("http://111.68.99.8/StudentProfile/")
.method(Connection.Method.GET)
.userAgent(
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.0 Safari/537.36")
.execute();
Document loginDoc = loginForm.parse();
String viewstate2 = loginDoc.select("input[name=__VIEWSTATE]").attr(
"value");
String stategenerator2 = loginDoc.select(
"input[name=__VIEWSTATEGENERATOR]").attr("value");
String Eventvalidation2 = loginDoc.select(
"input[name=__EVENTVALIDATION]").attr("value");
Document document = Jsoup
..userAgent(
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.0 Safari/537.36")
.connect("http://111.68.99.8/StudentProfile/RegisterCourse.aspx")
.data("__EVENTTARGET", "").data("__EVENTARGUMENT", "")
.data("__VIEWSTATE", viewstate2)
.data("__VIEWSTATEGENERATOR", stategenerator2)
.data("__VIEWSTATEENCRYPTED", "")
.data("__EVENTVALIDATION", Eventvalidation2)
.data("ctl00$Body$COURSES_OFFERED$ctl06$cbox", "on")
.data("ctl00$Body$RegisterButton", "Register Selected Courses")
.data("USERNAME_KEY", "USERNAME_VALUE")
.data("PASSWORD_KEY", "PASSWORD_VALUE")
.cookies(loginForm.cookies()).post();
Some explanation for the code above.
http://111.68.99.8/StudentProfile/
in order to generate some cookies. These cookies loginForm.cookies()
, are needed for the actual login. userAgent
otherwise you are going to send data that correspond to a mobile device and that may be rejected by the site.In general, the only way to be sure that you are sending all the data that are needed is to check the Network
tab of development tools and see the actual Request headers
.
Upvotes: 4
Reputation: 2319
Jsoup cannot handle javascript. Selenium, htmlunit is what you are looking for. You can enable javascript in htmlunit webclient and it will help you getting the click as the htmlunit's webclient mimics all the behaviours of a web browser.
Upvotes: 0