首先-请不要命名您的
PostMethod变量
get。
第二,试试这个:
PostMethod post = new PostMethod("yourUrl"){ @Override public boolean getFollowRedirects() { return true; }};如果您碰巧处于“另一端”,并且希望防止用户受苦,请
303 (See Other)在将
POST请求重定向到时使用响应代码
GET,而不是common
302和
301(按RFC)。常规浏览器往往很好,可以打破规则,并且不要求我们确认这些重定向,但是许多移动浏览器仍然可以。
关于基于表单的身份验证的问题-您只需要弄清楚要使用的参数名称(例如,通过查看“通常”登录的网站的来源),然后使用适当的值填充它们:
post.addParameter("username", username);post.addParameter("password", password);我在myoffice.bt.com上使用登录表单进行操作,Javascript中有一些情况。
表格提交给
https://myoffice.bt.com/siteminderagent/forms/login.fcc
提交的表单元素如下(
name=value,某些值为空):
Segment=btb.hubSubSegment=searchType=0searchPlatform=BEAlob=btb.hubqueryText=searchText=ctl00$masterWebpartManager$gwpCustomLogin1$CustomLogin1$UserName=your@email.comctl00$masterWebpartManager$gwpCustomLogin1$CustomLogin1$PWD=yourpwdctl00$masterWebpartManager$gwpCustomLogin1$CustomLogin1$RememberMe=onUSER=your@email.comPASSWORD=yourpwdSMENC=ISO-8859-1SMLOCALE=US-ENuserFirstLoginUrl=https://myoffice.bt.com/ManageBusinessApplications/SecretQA.aspxPrivateLoginSuccessUrl=https://myoffice.bt.com/sm/privatecreatesession.aspx?siteArea=btb.myaPublicLoginSuccessUrl=https://myoffice.bt.com/sm/createsession.aspx?siteArea=btb.myatarget=https://myoffice.bt.com/sm/privatecreatesession.aspx?siteArea=btb.mya&TARGET=https%3a%2f%2fmyoffice.bt.com%2fdefault.aspx (hidden)submitStatus=smauthreason=smagentname=postpreservationdata=AnonUserName=anon@myoffice.bt.comauthMode=SITEMINDERsmUrl=https://myoffice.bt.com/siteminderagent/forms/login.fccnotSMUrl=https://myoffice.bt.com/default.aspxsmIdentifier=1
尝试将其中的一些或全部(至少
USER和
PASSWORD)添加到中
PostMethod,并确保您提交到正确的URL。



