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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שגיאה בהעלאת טקסט לקובץ בימות המשיח

שגיאה בהעלאת טקסט לקובץ בימות המשיח

מתוזמן נעוץ נעול הועבר תכנות
8 פוסטים 4 כותבים 330 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A מנותק
    A מנותק
    avi rz
    כתב ב נערך לאחרונה על ידי
    #1

    בס"ד

    שלום וברכה,
    מנסה להעלאות טקסט לקובץ בימות המשיח, משתמש בפונקציה UploadTextFile
    ב node.js + axios
    הכל עובד טוב, כלומר מעדכן את הקובץ
    אבל לא מוריד שורה. איפה שמסומן ב '\n'
    מישהו מכיר את הבעיה?
    מצו"ב הקוד:

    var axios = require('axios');
    
    const token='0731234567:999999';
    const path='ivr2:2/IdListMessage.ini';
    
    const strData = `0541234567=f-001,g-/6\n0541234123=f-001,g-/6`;
    
    const url = `https://www.call2all.co.il/ym/api/UploadTextFile?token=${token}&what=${path}&contents=${strData}`;
    
    axios({url,method: 'POST'})
    .then((response)=> {
      console.log(JSON.stringify(response.data));
    })
    .catch( (error) => {
      console.log(error);
    });
    
    צדיק תמיםצ תגובה 1 תגובה אחרונה
    0
    • I מנותק
      I מנותק
      ivrtikshoret
      כתב ב נערך לאחרונה על ידי
      #2

      תנסה לשים ב שורה 6 גרשיים ולא גרש

      yossizY תגובה 1 תגובה אחרונה
      1
      • yossizY מנותק
        yossizY מנותק
        yossiz
        השיב לivrtikshoret ב נערך לאחרונה על ידי yossiz
        #3

        @ivrtikshoret כתב בשגיאה בהעלאת טקסט לקובץ בימות המשיח:

        תנסה לשים ב שורה 6 גרשיים ולא גרש

        רק למען הדיוק: ההבדל לא בין גרש לגרשיים אלא בין backtick (תו זה: `) לגרש/גרשיים ("/')
        אין שום הבדל בין גרש לגרשיים ב-JS

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        תגובה 1 תגובה אחרונה
        2
        • yossizY מנותק
          yossizY מנותק
          yossiz
          כתב ב נערך לאחרונה על ידי yossiz
          #4

          אופסס... טעיתי.
          במושכל ראשון חשבתי שבטח הבעיה היא שיש backtick במקום גרש
          אבל אחרי בדיקה אני רואה שגם ב-template string (מחרוזת בתוך backtick-ים) אמור לעבוד \n במקום ירידת שורה
          אז כנראה שיש הסבר אחר למה לא עובד עבור @avi-rz
          אולי צריך לעשות urlencode למחרוזת לפני ההעברה ל-axios

          עריכה: אכן זו ההסבר, axios מוריד ירידות שורה. צריך קודם לעשות encodeURI על המחרוזת ואז להעביר ל-axios

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

          תגובה 1 תגובה אחרונה
          3
          • צדיק תמיםצ מנותק
            צדיק תמיםצ מנותק
            צדיק תמים
            השיב לavi rz ב נערך לאחרונה על ידי צדיק תמים
            #5

            @avi-rz תעטוף את strData בencodeURIComponent (או את כל הURL בencodeURI)
            או שתעביר את הqs בארגומנט params של axios במקום לייצר את הURL המלא לבד

            Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
            טיפים

            תגובה 1 תגובה אחרונה
            4
            • yossizY מנותק
              yossizY מנותק
              yossiz
              כתב ב נערך לאחרונה על ידי yossiz
              #6

              יש פה משהו מעניין
              למרות שכאשר מעבירים מחרוזת ל-fetch (או ל-axios) הם עושים עליו encodeURI אוטומטי, אבל במקרה של ירידת שורה הם מורידים אותו
              נסיתי קצת להתחקות אחרי המקור להתנהגות זו
              מצאתי פה

              Remove all ASCII tab or newline from input.

              עיין גם https://security.stackexchange.com/questions/234662/

              📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

              תגובה 1 תגובה אחרונה
              3
              • A מנותק
                A מנותק
                avi rz
                כתב ב נערך לאחרונה על ידי
                #7

                @yossiz @צדיק-תמים
                תודה רבה! הפתרון שניסיתי להכניס את הפרמטרים בנפרד ולא ב url עבד!

                צדיק תמיםצ תגובה 1 תגובה אחרונה
                2
                • צדיק תמיםצ מנותק
                  צדיק תמיםצ מנותק
                  צדיק תמים
                  השיב לavi rz ב נערך לאחרונה על ידי צדיק תמים
                  #8

                  אגב @avi-rz אני אוהב להחדיר את הטוקן בצורה שקופה, משהו כזה:

                  const axios = require('axios');
                  
                  const axiosInstance = axios.create({
                      baseURL: 'https://www.call2all.co.il/ym/api/'
                  });
                  
                  const token = '0731234567:999999';
                  axiosInstance.interceptors.request.use((config) => {
                      config.params = config.params || {};
                      config.params.token = token;
                      return config;
                  });
                  
                  await axiosInstance.post('UploadTextFile', null, {
                      params: {
                          what: 'ivr2:2/IdListMessage.ini',
                          contents: '0541234567=f-001,g-/6\n0541234123=f-001,g-/6'
                      }
                  });
                  

                  אפשר להרחיב את הinterceptors הרבה יותר:

                  • לטפל גם בבקשות שהמידע בbody ולא כparams
                  • להוסיף לוג אוטומטי של הבקשה והתשובה
                  • לזרוק שגיאה כאשר התשובה של ימות היא שהיתה שגיאה (כי הם מחזירים תמיד HTTP STATUS 200...)
                    ועוד ועוד.

                  Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                  טיפים

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

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

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

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