דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. מדריך WEB API

מדריך WEB API

מתוזמן נעוץ נעול הועבר ארכיון code613m
23 פוסטים 3 כותבים 2.0k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #21

    @Zvi Good

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

    בקוד שלי אין בכלל שמירה לקובץ, רק השמה במשתנה טקסטואלי.

    @Zvi Good

    יש לי קוד לחילוץ קבצי gz אבל זה לא יעזור לי כי זה רק לקבצים פיזיים.
    ואולי יש אפשרות להוריד ולחלץ בלי לשמור אותו פיזית?!.

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

    @Zvi Good

    ה Url כאן מפנה לקובץ מסוים להורדה ואני מעוניין לקבל את הדף ולעבור עם לולאה על כל תגיות ה Href שמכילים קבצים להורדה
    אז שיניתי את ה-Url כך שיגיע לדף שאוכל למפות אותו https://url.publishedprices.co.il/file מה שלכאורה היה אמור להביא לי את כל מקור הדף
    אבל אופס' אני מגלה שהוא מביא לי את הדף חוץ ממה שאני צריך אין שם קישורים להורדה בכלל
    ועוד יותר מוזר היה לי כשפתחתי את האתר בדף שנמצאים שם הקישורים וביקשתי את מקור הדף אני מקבל את מקור הדף בלי הקישורים להורדה
    למה זה כך? :shock:

    איך פתחת אותו? בכל אופן בשביל לנתח HTML אתה חייב להשתמש בספריה חיצונית (או להתחיל לכתוב המון קוד).
    הספריה הטובה ביותר היא HtmlAgilityPack והדרך הקלה להתקנה היא ע"י הPackage Manager Console (תפריט Tools > NuGet Package Manager) שם אתה כותב Install-Package HtmlAgilityPack.

    פורסם במקור בפורום CODE613 ב20/08/2015 12:15 (+03:00)

    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

    בכל נושא אפשר ליצור קשר dovid@tchumim.com

    תגובה 1 תגובה אחרונה
    0
    • Z מנותק
      Z מנותק
      zvi good
      כתב ב נערך לאחרונה על ידי
      #22

      @דוד ל.ט.

      @Zvi Good

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

      בקוד שלי אין בכלל שמירה לקובץ, רק השמה במשתנה טקסטואלי.

      אוקי לזה התכוונתי - ציפיתי לראות את הטקסט שבקובץ אבל הוא קיבל כנראה רק את Bytes של הקובץ Gz

      @דוד ל.ט.

      @Zvi Good

      יש לי קוד לחילוץ קבצי gz אבל זה לא יעזור לי כי זה רק לקבצים פיזיים.
      ואולי יש אפשרות להוריד ולחלץ בלי לשמור אותו פיזית?!.

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

      בסוף העליתי אני 😉 ועל הדרך למדתי המון...

      public static string UnZip(byte[] value)
              {            
                  //Prepare for decompress
                  System.IO.MemoryStream ms = new System.IO.MemoryStream(value);
                  System.IO.Compression.GZipStream sr = new System.IO.Compression.GZipStream(ms,
                      System.IO.Compression.CompressionMode.Decompress);
      
                  //Reset variable to collect uncompressed result
                  value = new byte[value.Length];
      
                  //Decompress
                  int rByte = sr.Read(value, 0, value.Length);
      
                  //Transform byte[] unzip data to string
                  System.Text.StringBuilder sB = new System.Text.StringBuilder(rByte);
                  //Read the number of bytes GZipStream red and do not a for each bytes in
                  //resultByteArray;
                  for (int i = 0; i < rByte; i++)
                  {
                      sB.Append((char)value[i]);
                  }
                  sr.Close();
                  ms.Close();
                  sr.Dispose();
                  ms.Dispose();           
                  return sB.ToString();
              }אז תודה שלא העלת...  :D 
      

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

      @דוד ל.ט.

      @Zvi Good

      ה Url כאן מפנה לקובץ מסוים להורדה ואני מעוניין לקבל את הדף ולעבור עם לולאה על כל תגיות ה Href שמכילים קבצים להורדה
      אז שיניתי את ה-Url כך שיגיע לדף שאוכל למפות אותו https://url.publishedprices.co.il/file מה שלכאורה היה אמור להביא לי את כל מקור הדף
      אבל אופס' אני מגלה שהוא מביא לי את הדף חוץ ממה שאני צריך אין שם קישורים להורדה בכלל
      ועוד יותר מוזר היה לי כשפתחתי את האתר בדף שנמצאים שם הקישורים וביקשתי את מקור הדף אני מקבל את מקור הדף בלי הקישורים להורדה
      למה זה כך? :shock:

      איך פתחת אותו? בכל אופן בשביל לנתח HTML אתה חייב להשתמש בספריה חיצונית (או להתחיל לכתוב המון קוד).
      הספריה הטובה ביותר היא HtmlAgilityPack והדרך הקלה להתקנה היא ע"י הPackage Manager Console (תפריט Tools > NuGet Package Manager) שם אתה כותב Install-Package HtmlAgilityPack.

      אז דבר ראשון הצעת לי חבילה מצוינת שלא ידעתי עליה וזה ממש הציל אותי בפרויקט אחר שהייתי חייב לנתח Html.
      ולגבי הדף כאן אז פתחתי אותו ממש פשוט "צפה במקור הדף" אבל מה התברר לי שאחרי שהדף יורד הוא מביא את נתוני הקבצים ב Agax כך שבמקור הדף אין אפשרות לראות את זה, הפתרון היה די פשוט (לי בפעם הראשונה קשה מאוד) חיפשתי בדפדפן את הנתיב של ה Agax עם הפרמטרים request חוזר עם אותם עוגיות והפרמטרים של ה Agax וברוך ה' הגעתי אליו.

      שוב פעם [size=140:300ywwrh]המון המון תודה![/size:300ywwrh] על הקוד הראשוני והעזרה במשך שנתן לי להתקדם המון!!!

      פורסם במקור בפורום CODE613 ב02/09/2015 02:21 (+03:00)

      תגובה 1 תגובה אחרונה
      1
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #23

        zviGood אתה מאוד משמח אותי בזה שאתה מתקדם לבד וכמובן גם על המחמאות :)...
        בקוד שלך הקטע של הStringBuilder מיותר, במקומו עליך לכתוב ככה:

        return Encoding.UTF8.GetString(value);
        

        אבל עיקר הבעיה של הקוד זה אורכו של המשתנה value. הוא באותו אורך של המקור, והמקור קצר בשל דחיסותו. אז איזה אורך לעשות? אפשר לעשות אורך כפול וקיצוץ לבסוף, אבל פחחח.. זה לא דרך. בדרך כלל משתמשים בMemoryStream, אבל פה שגם רוצים לקודד את הבתים, אז זה בדיוק תפקידו של הStreamReader ("קורא זרם בתים לקידוד מסויים"), ככה:

        public static string UnZip(byte[] value)
        {
            using (var ms = new System.IO.MemoryStream(value))
            using (var sr = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress))
            using (var strReader = new StreamReader(sr, Encoding.UTF8))
                return strReader.ReadToEnd();
        }
        

        פורסם במקור בפורום CODE613 ב02/09/2015 17:20 (+03:00)

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        תגובה 1 תגובה אחרונה
        1

        • 1
        • 2
        בא תתחבר לדף היומי!
        • התחברות

        • אין לך חשבון עדיין? הרשמה

        • התחברו או הירשמו כדי לחפש.
        • פוסט ראשון
          פוסט אחרון
        0
        • דף הבית
        • קטגוריות
        • פוסטים אחרונים
        • משתמשים
        • חיפוש
        • חוקי הפורום