נשלח בתאריך: 07 August 2009 בשעה 00:54 | | IP רשוּם
|
|
|
|
שלום לכולם! אני מנסה ללמוד איך לבצע בדיקה אוטומטית עבור אתר מסויים - אם התבצע שינוי או לא. כלומר הרעיון של התוכנית לדוגמא: תכנס לפייסבוק כל זמן מוגדר, תסרוק את הדף ותציג הודעה על השינויים שהתקבלו. הורדתי תוסף לFF שמציג לי את ה-headers שנשלחים בדפדפן בכל פעולה שאני מבצע ע"מ לדעת מה אני צריך לשלוח ומתי. התחלתי עם אתר די פשוט של האוניברסיטה שלי ע"מ לבדוק האם יש שינוי בגליון הציונים (אם הגיעו תוצאות למבחן) בפרקי זמן קבועים. האתר די פשוט (מצ"ב לינק: http://gezer1.bgu.ac.il/teva/comp.php) וגם ראיתי שסה"כ נשלח header אחד (POST) עם כל מיני פרטים לא מעניינים + השם משתמש, סיסמא ות.ז שלי ומשם נכנס פנימה. הבעיה שלי: התוכנית שלי מציגה את הדף הראשון (התוכן שלו), שולחת את ה-HEADER שהכנתי, אבל אני לא מצליח לטעון את התוכן של הדף החדש - כלומר זה שאמור לבוא אחרי וידוא הפרטי כניסה מצ"ב הקוד:
import java.net.*; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; import java.io.*;
public class starter { public static void main(String[] args) throws Exception { URL url = new URL("http://gezer1.bgu.ac.il/teva/comp.php"); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.setInstanceFollowRedirects(false); connection.setDoOutput(true); OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); System.out.println("try to read the first page:"); System.out.println("---------------------------"); String str1=""; while (str1!=null){ str1=in.readLine(); System.out.println(str1); // that's print the entrance html page } String data = "uname=" + "####" + "&passwd=" + "####" + "&id=" + "####" + "&dept=202"; String outTrans = "POST " + "http://gezer1.bgu.ac.il/teva/entrance.php" + " HTTP/1.1\n" + "Host: " + "gezer1.bgu.ac.il" + "\n" + "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1\n" + "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n" + "Accept-Language: en-us,en;q=0.5\n" + "Accept-Encoding: gzip,deflate\n" + "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n" + "Keep-Alive: 300\n" + "Proxy-Connection: keep-alive\n" + "Referer: " + "http://gezer1.bgu.ac.il/teva/comp.php" + "\n" + "Content-Type: application/x-www-form-urlencoded\n" + "Content-Length: " + data.length() + "\n\n" + data;
out.write(outTrans); out.flush();
Thread.currentThread(); Thread.sleep(1000);
System.out.println("try to read the second page:"); System.out.println("----------------------------"); str1=""; while (str1!=null){ str1=in.readLine(); System.out.println(str1); } str1=""; while (str1!=null){ str1=in.readLine(); System.out.println(str1); } in.close(); out.close(); } }
|