所以,我有我想訪問的這個網頁,但首先我必須從另一個網頁登錄。我想保留cookie,然後將其用於以後的自動登錄。到目前爲止,我所做的:如何登錄並保存cookie以便以後使用網頁
首先,這是登錄網頁:https://autenticacao.uvanet.br/autenticacao/pages/login.jsf
這是我大學的學生的區域。
public class Consulta extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
StringBuilder builder = new StringBuilder(100000);
DefaultHttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(urls[0]);
try {
List<NameValuePair> val = new ArrayList<NameValuePair>(2);
val.add(new BasicNameValuePair("form:usuario", "myusername"));
val.add(new BasicNameValuePair("form:senha", "mypass"));
httpPost.setEntity(new UrlEncodedFormEntity(val));
HttpResponse response = client.execute(httpPost);
InputStream content = response.getEntity().getContent();
BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
builder.append(s);
}
} catch (Exception e) {
e.printStackTrace();
}
return builder.toString();
}
}
這是我使用,使類HttpPost,這是我怎麼稱呼它:
@Override
public void onClick(View v) {
try{
String html = new Consulta().execute("https://autenticacao.uvanet.br/autenticacao/pages/login.jsf").get();
Document doc = Jsoup.parse(html);
Element link = doc.select("title").first();
String t = link.text();
tv1.setText(t);
}catch(Exception e){
e.printStackTrace();
}
}
我相信它會以這種方式工作:
- 我發送該網頁登錄Consulta.java
- 該類將獲得域「的形式:usuario」和「形式:senha」,並與名爲myUsername,輸入mypassword填充它們,然後登錄
- 類將返回我的HTML代碼的第二網頁,作爲字符串
但是,什麼情況是,它返回我第一個網頁(登錄一)。我很確定我做錯了什麼,但我不知道是什麼,有人能幫助我嗎?另外,對不起我的英語,這不是我的主要語言。