0
我正在用Java編寫程序,並且我想填寫表單的指定字段,模擬提交點擊,因此得到結果頁面。我正在測試我的想法,網址爲http://stu21.kntu.ac.ir/Login.aspx
,它有兩個字段txtusername
和txtpassword
。我正在嘗試下面的代碼,但它不會爲我返回結果頁面。我該怎麼做 ?這段代碼我錯了什麼?模擬點擊Java中的提交按鈕
DefaultHttpClient conn = new DefaultHttpClient();
conn = new DefaultHttpClient();
ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("txtusername", "8810103"));
pairs.add(new BasicNameValuePair("txtpassword", "8810103"));
HttpPost httpPost = new HttpPost("http://stu21.kntu.ac.ir/Login.aspx");
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(pairs,
"UTF-8");
httpPost.setHeader(
"UserAgent",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/12.04 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19");
httpPost.setEntity(entity);
HttpResponse response = conn.execute(httpPost);
InputStream is = response.getEntity().getContent();
RandomAccessFile raf = new RandomAccessFile(
"/home/hossein/Desktop/random.aspx", "rw");
raf.seek(0);
int bytes = 0;
byte[] buffer = new byte[1024];
while ((bytes = is.read(buffer)) != -1)
raf.write(buffer, 0, bytes);
raf.close();
is.close();
對不起,如果我的問題與其他線程重複,我無法找到我的解決方案在其他線程。
感謝提前:)
嘗試將它直接指向login.aspx頁面。也許它不是網站的默認頁面 另外,它應該在try catch塊內。打印錯誤堆棧,看看它說了什麼 –
我測試了你的答案,它不起作用: -
你怎麼知道它不起作用?它有什麼作用?或不這樣做? –