לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 07-08-2009, 00:20
  איתי ב איתי ב אינו מחובר  
 
חבר מתאריך: 15.10.07
הודעות: 58
כניסה אוטומטית לאתר בגאווה

שלום לכולם!
אני מנסה לכתוב תוכנית שתכנס לאתר של האוניברסיטה שלי, עם שם משתמש וסיסמא, ותבדוק אם יש עדכונים לגבי ציונים חדשים (ע"י סריקת התוכן של העמוד).
אני לא מצליח לקבל את העמוד שאחרי השלב כניסה (של רשימת הציונים) - אשמח לעזרה!
מצורף הקוד בהמשך:
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();
}
}
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 07-08-2009, 00:31
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 1 שנכתבה על ידי איתי ב שמתחילה ב "כניסה אוטומטית לאתר בגאווה"

לא מכיר ג'אווה (יותר מ"שלום שלום" ... ואני תוהה אם אין להם משהו דומה ל cURL? לכתוב את בקשת ה HTTP לבד נשמע קצת מיותר...), אבל הפורמט של בקשת ה POST נראה לי מוזר. למיטב ידיעתי נותנים relative path ל root directory של האתר - ככה נראות כל הבקשות שראיתי (ויצרתי...) עד היום. לא נראה לי הגיוני בכלל להוסיף בהתחלה את הפרוטוקול וההוסט, שהרי הפרוטוקול לא מעניין את השרת (זה מטופל בשכבה נמוכה יותר מהשלב שבו מעובדת הבקשה), ואת ההוסט מצויינים בכותר Host שורה לאחר מכן (זה דווקא כן מעניין את השרת בהנחה והוא מגיש מספר אתרים על ידי אותה כתובת IP, באמצעות Name-based Virtual Hosting)...

אולי זו הבעייה שלך...

בכל אופן, אין ספק שללא הפרטים שהסתרת, קשה לבדוק את הקוד, ולכן ראוי שתתן את הפלט / שגיאה אם אתה רוצה שמישהו יצליח לעזור לך...
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 07-08-2009, 01:22
  איתי ב איתי ב אינו מחובר  
 
חבר מתאריך: 15.10.07
הודעות: 58
בתגובה להודעה מספר 2 שנכתבה על ידי שימי שמתחילה ב "לא מכיר ג'אווה (יותר מ"שלום..."

קודם כל תודה על תגובתך.
ראשית לגבי הפלט, זה לא נראה לי יותר מידי יעניין - בהדפסה הראשונה אני רואה את הקוד מקור של הדף אינטרנט הראשון (הכתובת אליה אני מתחבר בהתחלה). המטרה שלי - לקבל בפלט השני את הקוד מקור של הדף הבא. האתגר היה: להבין מה בדיוק קורה בלחיצה על כפתור המשך באתר. ע"מ להבין זאת ראיתי מה נשלח לשרת וזה מה שניסיתי לשלוח חזרה. הבעיה היא בעבודה עם המחלקה HttpURLConnection. אני לא כל כך מבין איך לעבוד איתה ולשלוח / לקבל הדרים.
אני לא כל כך בקיע במונחים שאתה הזכרת (בסוף) - אשמח להסבר איך בדיוק העיניינים עובדים.
לפי מה שאני מבין כרגע - אם אני מצליח לראות את ההדרים שהדפדפן שלי שולח בכל לחיצת כפתור באתר - אני יכול לשלוח אותם בהעתקה פשוטה ולצפות בתוכן של ההדר שחוזר (שאמור להכיל קוד מקור של HTML). האם אני צודק? מפספס משהו? שוב אשמח לקבל תגובות
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 07-08-2009, 01:27
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 3 שנכתבה על ידי איתי ב שמתחילה ב "קודם כל תודה על תגובתך. ראשית..."

בקיצור אני אומר שלא נראה לי שהשורה הזאת:
קוד:
"POST " + "http://gezer1.bgu.ac.il/teva/entrance.php" + " HTTP/1.1\n" +


אמורה לעבוד

יותר הגיוני לי שהשורה אמורה להיות:

קוד:
"POST " + "/teva/entrance.php" + " HTTP/1.1\n" +


וכן, אם אתה מעתיק את הבקשות כפי שאתה רואה אותן עם sniffer, אז התוצאה אמורה להיות זהה (בהנחה שלא מעורבת גם לוגיקת עוגיות שמחייבת אותך לעשות authentication ולקבל עוגיה ואז להשתמש בה כדי לבצע את הבקשה...)

לעניין המחלקה - כנראה שאתה בכלל לא משתמש בה, כי נראה שאתה כותב את כל הבקשה לשרת מבלי ששפת התכנות שלך בכלל מבינה מה אתה עושה, כלומר, אתה פשוט כותב stream לתוך חיבוור TCP. אם כבר עושים את זה, ייתכן שאתה בכלל לא אמור לערב את המחלקה שמטפלת בפרוטוקול HTTP בג'אווה אלא סתם לפתוח חיבור לשרת ה web לפורט 80 ולדחוף את הסטרינג שלך לשם...
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 07-08-2009, 13:04
  Dragonion Dragonion אינו מחובר  
 
חבר מתאריך: 22.08.08
הודעות: 310
בתגובה להודעה מספר 8 שנכתבה על ידי איתי ב שמתחילה ב "סבבה. הורדתי, תודה. אבל משהו..."

בתוסף אפשר ללחוץ מקש ימני ולהעתיק שורה או בלוק.

בעניין של cookie - בוא נאמר אתה רוצה לעשות login לאתר שמשתמש בvB, אתה תצטרך לתת לו בcontent (לפחות ככה זה באתר אחד שעשיתי לו bot) שם וסיסמה, ואולי עוד כמה דברים, ואז הוא יחזיר לך כמה שורות של Set-Cookie ואחרי זה את הקוד html של הדף הראשי\איפה שמתחברים.
אותך מעניין הSet-Cookie האלה, בעיקר (עוד פעם, לפחות ככה זה אצלי) bbsessionhash, כי אתה צריך את זה בשביל להמשיך לשלוח מידע לשרת בתור מישהו מחובר.

בשביל לדעת מה בדיוק אתה צריך לשלוח להיתחבר, לדוגמא, פשוט תתנתק (עדיף למחוק את הcookies של האתר), תפעיל את התוסף, תתחבר, ותראה מה firefox עשה עם השם והסיסמה שלך.

עם האתר משתמש בvB, כמו שהזכרתי למעלה, אתה מן הסתם תצטרך לשלוח cookie עם הbbsessionhash בכל שליחה אחרי ההתיחברות. אחרת תיחשב בתור אורח ולא בתור משתמש.

נערך לאחרונה ע"י Dragonion בתאריך 07-08-2009 בשעה 13:07.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 23:41

הדף נוצר ב 0.06 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר