none
כיצד לגשת לכתובת URL ולקבל את התוכן שמוחזר מהשרת RRS feed

כל התגובות

  • אהלן אמיר,

    כתבתי לך תשובה לשלב הזה בשרשור הקודם :-)
    תשובה בקצרה: בעזרת מחלקות webrequest וכן WebResponse
    יש לך קישורים ותוספות בשרשור הקודם. אנא עבור על ההודעה הארוכה השלי שם

    אני שמח לראות שהבנת את הרעיון של שאלה ממוקדת וקצרה, אבל כאמור השאלה הזו כבר קיבלה תשובה מלאה.

    * בכל מקרה אנא עבוד על שרשור פתוח אחד בכל פעם. כאשר אתה מקבל תשובה לשאלה ורוצה לעבור לשאלה נוספת. אל תשכח לסגור את השרשור הקודם תמיד לפני שפותחים שרשור נוסף

    * סגירת שרשור נעשית על ידי סימון תשובה אחת או יותר שקיבלת (בעזרת הקישורים מתחת להודעות), בנוסף אפשר ומומלץ להצביע להודעות יעילות או נחמדות (כל הצבעה על הודעה נותנת למי שכתב אותה +5 נקודות דרך אגב), וכמובן לא לשכוח להודות למי שניסה לעזור ולכמובן למי שעזר (לדעתי צריך להודות גם למי שניסה ולא רק למי שנתן את התשובה הכי טובה)


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום שני 25 אפריל 2016 22:24
    מנחה דיון
  • בוקר טוב אמיר,

    אנא דווח לי אם אתה נתקל בבעיה או היכן אנחנו עומדים


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום שלישי 26 אפריל 2016 06:48
    מנחה דיון
  • היי, מה נשמע? :-).

    קודם כל תודה רבה על העזרה, אני מעריך את זה מאוד!

    שנית,

    מצאתי את הקוד הזה אשר עושה שימוש במחלקה WebClient:

      

    protected void

    btnGetHTML_Click(object sender, EventArgs e)
      {
        // We'll use WebClient class for reading HTML of web page
        WebClient MyWebClient = new WebClient();

        // Read web page HTML to byte array
        Byte[] PageHTMLBytes;
        if (txtURL.Text != "")
        {
          PageHTMLBytes = MyWebClient.DownloadData(txtURL.Text);

          // Convert result from byte array to string
          // and display it in TextBox txtPageHTML
          UTF8Encoding oUTF8 = new UTF8Encoding();
          txtPageHTML.Text = oUTF8.GetString(PageHTMLBytes);
        }
      }

    הקוד נלקח מכאן:

    http://www.beansoftware.com/ASP.NET-FAQ/Read-Page-HTML.as

    px

    אך בדוגמה שבקישור נראה שעובד ואצלי לא ואני לא יודע למה...

    יש למישהו רעיון?


    amir tuchner

    יום שלישי 26 אפריל 2016 13:20
  • ערב טוב אמיר

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

    >> קודם כל תודה רבה על העזרה, אני מעריך את זה מאוד!

    בבקשה :-)

    >> אך בדוגמה שבקישור נראה שעובד ואצלי לא ואני לא יודע למה...

    איך מישהו יכול לדעת מה קורה אצלך?!?
    אנחנו לא קוראים מחשבות :-)

    אם משהו לא עובד אצלך אז אתה צריך לתת לנו אינפורמציה מה כן קורה אצלך.

    * אם אתה מקבל הודעת שגיאה למשל אז אתה צריך לצרף את ההודעה בצורה מלאה ומדוייקת מכיוון שההודעה כניראה תרמז לנו מה הבעיה.
    * כבר כתבתי לך בהודעה קודמת שאין לנו מידע על איזה סוג של אפליקציה אתה מפתח (למשל אפליקציית WEB או אפליקציה חלונאית או שירות שרץ ברקע), ולא סיפקת לנו מידע על באיזה תבנית של פרוייקט אתה עובד (למשל אם זו אפליקציה WEB האם אתה עובד עם asp.net webform או אולי asp.net MVC או אולי asp.net core). הדברים לא זהים בברירת המחדל.


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]


    יום שלישי 26 אפריל 2016 17:23
    מנחה דיון
  • בנוסף לקישורים ששמתי בשרשור הקודם (שהם מכילים גם דוגמאות קוד וגם הסברים קצרים), כדאי גם לבדוק את האפשרות של עבודה עם המחלקה HttpClient. המדריך הבא יכול לעזור בנשוא זה (זו מחלקה מאוד פשוטה לשימוש והיא עובדת גם בטכנונולוגיות וסביבות פיתוח חדשות יותר כמו  asp.net core), והעיקר שזה מדריך טוב שיכול לתת הבנה כללית. כמובן שצריך לעבור עליו בצורה מסודרת:

    http://www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום שלישי 26 אפריל 2016 18:18
    מנחה דיון
  • היי,


    הפיתוח נעשה ב- asp.net webforms,

    בזמן ריצה, כאשר אני לוחץ על הכפתור btnGetHTML, נראה שקיימת תקשורת עם השרת (יש POSTBACK) אך קוד ה- HTML 

    של האתר לא מופיע בתוך ה-TextBox שבו הוא אמור להופיע ולמעשה הקוד לא מופיע בכלל.


    amir tuchner

    יום שלישי 26 אפריל 2016 19:17
  • סוף שבוע טוב אמיר,

    אני מקבל הרגשה שאתה לא קורא את כל מה שאני כותב לך, אלא רק חלקים :-(
    תחילה אנא סגור את השרשור הקודם

    POSTBACK לא קשור לתקשורת לאתר המרוחק ממנו אתה מנסה לקבל את התוכן אלא לשרת שלך. מאחורי הקלעים זו פעולה פשוטה של העברת מידע בשיטת GET כמו שקורה בכל טופס רגיל באתרי אינטרנט. זה הבסיס לכל הטכנולוגיה של asp.net webforms ולמה שנקרא Page Life Cycle. אם אתה לא שולט בנושא ואתה עובד הטכנולוגיה אז חייב לדעתי לעצור רגע וללמוד את הנושא לעומק. זה הבסיס להבנת מה שקורה מאחורי הקלעים. מקום טוב להתחיל בו זה בקישור הבא:

    https://msdn.microsoft.com/en-us/library/ms178472.aspx

    אם תצרף לנו את דוגמה נקייה של פרוייקט הכולל את הבעיה אז נוכל להציץ בו ולהבין יותר מה אתה עושה. בינתיים השאלה הגדולה היא קודם כל מה קורה כאשר אתה הדברים לא עובדים. אם לא מתקבלת הודעת שגיאה אז כניראה שלא היתה שגיאה (או שהקוד מפותח בצורה גרועה ואתה מסתיר הודעות שגיאה במכוון, מה שלא יאפשר לנטר אותן).

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

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

    כיצד מבצעים ניטור בעיה בסיסי: בעזרת breakpoint
    https://msdn.microsoft.com/en-us/library/5w9dfyd8.aspx

    1. האם כתובת ה URL הועברה טוב לאחר אירוע ה POSTBACK ? אם במקום להכניס לטופס את המידע מהאתר החיצוני אתה מכניס לתיבת הטקסט את הכתובת של ה URL עצמה txtURL.Text (לא את התוכן של האתר אלא הכתובת) באותו IF שבודק אם זה לא ריק, אז האם הטקסט מוצג טוב בטופס txtPageHTML.Text?

    2. אם הכל עבד טוב בניסיון מעל תבדוק למשל מה אורך התווים שהגיעו חזרה ב  PageHTMLBytes

      

    * האם עברת על הקישורים והדברים שאני שמתי לך?

    ** אני ממליץ לעבור על הקישורים ששמתי לך בהודעות הקודמות ובעיקר הקישור בהודעה האחרונה הקודמת שלי. ההודעה שמתחילה עם התוכן:
    בנוסף לקישורים ששמתי בשרשור הקודם (שהם מכילים גם דוגמאות קוד וגם הסברים קצרים), כדאי גם לבדוק את האפשרות של עבודה עם המחלקה HttpClient


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]




    יום שישי 29 אפריל 2016 04:50
    מנחה דיון