我正在尝试使用jsoup登录一个网站,我很确定我正在解析所有需要解析的东西,我只是不知道出了什么问题。
我用这个做参考:http://cs.harding.edu/fmccown/android/Logging-into-Pipeline.pdf
以下是我的AsycntTask doInBackground中的代码:
Connection.Response loginForm = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.method(Connection.Method.GET)
.timeout(10000)
.execute();
Document doc = loginForm.parse();
//Random values you need to parse to lectio
String VIEWSTATEXvalue = doc.select("input[name=__VIEWSTATEX").attr("value");
String EVENTVALIDATIONvalue = doc.select("input[name=__EVENTVALIDATION").attr("value");
Log.v("MainActivity",VIEWSTATEXvalue + EVENTVALIDATIONvalue);
doc = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.data("m$Content$username2", username)
.data("m$Content$password2", password)
.data("__VIEWSTATEX",VIEWSTATEXvalue)
.data("__EVENTVALIDATION",EVENTVALIDATIONvalue)
.data("__EVENTTARGET","m$Content$submitbtn2")
.cookies(loginForm.cookies())
.post();
Log.v("MainActivity", doc.toString());
但问题是,当我登录时,它不包含页面的文档,它包含一个错误页面的文档,该页面只显示“出了问题”。
我猜这是因为我没有解析所有的参数。
这是我尝试登录的页面:https://www.lectio.dk/lectio/11/login.aspx?lecafdeling=4733693054
看了一些提交的表格后,我发现:
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
但我不知道如何解析这些的正确值
我不得不用
String EVENTVARGUMENTvalue = doc.select("input[name=__EVENTARGUMENT").attr("value");
查看浏览器发送内容的更简单方法是检查原始超文本传输协议请求,然后复制标题。您可以通过按F12
打开开发工具来Chrome。选择Network
。左上角有一颗子弹。将其悬停,它将显示记录网络日志
。这一定是红色的。如果不是按它。这将记录您将发送的请求的所有流量。您将在下面的表格上显示一些行。按method
排序,选择值为POST
的行(按列Name
的值)。这是您正在发送的实际请求。在右侧面板上选择Headers
。检查请求标头和表单数据。检查所有这些值是否相同。这将有助于你硬编码一些你缺少的值。
问题内容: 使用Jsoup登录网站需要什么?我相信我的代码是正确的,但是我从未使用Jsoup成功登录到网站,因此我可能会丢失一些东西。这是我的代码: 返回一个显示未成功登录的登录页面。有一个名为的输入值,我认为这可能是为什么它不起作用的原因。这个值会随着时间的推移而上升。我运行了两次代码,时间变量返回了和。我的代码需要大约10秒钟的时间来打印文档,因此,变量在发送发布请求时是否已经更改?我不确定这
问题内容: 在此网站上,您可以输入您的学生卡号,然后显示该卡上还剩多少钱。我想使用JSOUP获得信息。这是我当前的代码,但是不起作用, 我没有太多经验,所以我不知道在哪里寻找问题。一些想法: 我应该使用还是? 在使用chrome devoloper工具时,发布数据是我使用功能发送的所有数据。但是,如果发送时出现错误,为什么? 我应该发送解密或加密的数据吗?(两者均在chrome devoloper
我试图登录使用领英J汤,我已经尝试了几种方法,但总是遇到错误403,我哪里出错了? 测试一 错误控制台 组织。jsoup。HttpStatusException:获取URL时发生HTTP错误。状态=403,URL=https://www.linkedin.com在org。jsoup。帮手HttpConnection$响应。在org上执行(HttpConnection.java:590)。jsoup
因此,我已经阅读了所有关于创建会话和自动登录的jsoup文章。阅读有关cookie问题的问题。因此,使用所有这些示例,我创建了一些JAVA代码来登录到特定站点。但每次我登录或尝试登录时,我都会被重定向回登录页面。 使用loginForm我获得所需的cookie 然后我使用Forms操作URL发布我的登录信息 然后我应该登录,但它是重新定向到登录。我可以在loginDoc对象解析中看到这一点。 问题
问题内容: 我已经广泛阅读了有关此操作的信息,并尝试了许多不同的版本,但无法使其正常工作。 基本上,我只想登录ConEdison网站并抓取我的帐单记录。这是我所拥有的: 我知道该信息是正确的(尽管我不知道是否真的需要传递没有值的数据参数)。 我没有任何错误,只是打印了登录页面(https://apps.coned.com/cemyaccount/NonMemberPages/Login.aspx?
我怎样才能实现下面的请求通过使用J汤? POST/login/user HTTP/1.1 主机:url。出版报纸。co.il 缓存控制:无缓存内容类型:应用程序/x-www-form-urlencoded 用户名=只读 我尝试了以下代码,但它不工作,我得到一个错误的网站 未收到预期的安全令牌 我正在使用以下代码: 我知道,当我使用时,我需要在URL中对其进行编码,但假设当我设置正确的头JSOUP时