שגיאה בהעלאת קובץ ב api
-
@avi-rz כתב בשגיאה בהעלאת קובץ ב api:
בס"ד
מנסה להעלות קובץ למערכת.
ניסיתי דרך ה test של ימות וזה עובד.
ובקוד שלי מקבל שגיאה.{"responseStatus":"ERROR","message":"System error","messageCode":105,"yemotAPIVersion":6,"success":false}
משתמש ב node.js + axios + form-data
מצו' הקוד:var axios = require('axios'); var FormData = require('form-data'); var data = new FormData(); const token='0731234567:999999'; const path='ivr2:2/IdListMessage.ini' const url = `https://www.call2all.co.il/ym/api/UploadFile?token=${token}&path=${path}`; const strData = '0541234567=f-001,g-/6'; data.append('file', strData); var config = { method: 'post', url, headers: { ...data.getHeaders() }, data : data }; axios(config) .then(function (response) { console.log(JSON.stringify(response.data)); }) .catch(function (error) { console.log(error); });
אשמח לפיתרון.
תודה רבה.https://tchumim.com/topic/15792/העלאת-קובץ-בapi-לימות-המשיח-קוד-שבפייתון-עובד-וב-nodejs-לא-כל-כך/13
-
@avi-rz
האמת שאני יותר מביןבphp
אבל על כל פנים זה היה נראה שגיאה בקוד...
אבל נחכה למבינים בnode.js...@פיסטוק-פרווה הוא אחד המקצוענים... -
@יוסף-ח כתב בשגיאה בהעלאת קובץ ב api:
@avi-rz
האמת שאני יותר מביןבphp
אבל על כל פנים זה היה נראה שגיאה בקוד...
אבל נחכה למבינים בnode.js...צודק בעיקרון, אבk ב node.js זה לא תמיד מוכרח,
וניד"ד הקוד הצליח לשלוח, רק קיבלתי שגיאה מימות.
כנראה משהו ברנדור ל form-data לא כ"כ. -
@avi-rz
כשאתה משתמש עם UploadFile אתה צריך לשלוח את הקובץ עצמו בצורה בינארית, ולא את התוכן של הקובץ.
כדי להעלות תוכן של קובץ בלבד (כפי שנראה בדוגמא שלך) אתה יכול להשתמש עם העלאת טקסט לקובץ -
@amp-Software-0 כתב בשגיאה בהעלאת קובץ ב api:
@avi-rz
כשאתה משתמש עם UploadFile אתה צריך לשלוח את הקובץ עצמו בצורה בינארית, ולא את התוכן של הקובץ.
כדי להעלות תוכן של קובץ בלבד (כפי שנראה בדוגמא שלך) אתה יכול להשתמש עם העלאת טקסט לקובץתודה רבה,
לא שמתי לב לאופציה הזו.
אממה איך אני מכניס טקסט עם ירידת שורה, כשאני מכניס בתוכן\n
זה לא עוזר?
-
@avi-rz
עוזר, יתכן אבל שרק אם אתה שולח את זה ב POST ולא ב GET -
@amp-Software-0 כתב בשגיאה בהעלאת קובץ ב api:
@avi-rz
עוזר, יתכן אבל שרק אם אתה שולח את זה ב POST ולא ב GETניסיתי וזה לא עזר,
מצו"ב הקודvar axios = require('axios'); const token='0731234567:999999'; const path='ivr2:2/IdListMessage.ini'; const strData = '0541234567=f-001,g-/6\n0541234568=f-001,g-/6'; const url = `https://www.call2all.co.il/ym/api/UploadTextFile?token=${token}&what=${path}&contents=${strData}`; axios.post(url) .then((response)=> { console.log(JSON.stringify(response.data)); }) .catch( (error) => { console.log(error); });
וזה מה שאני מקבל בקובץ
0541234567=f-001,g-/60541234568=f-001,g-/6
-
@avi-rz ניסת ב POST?
-
@amp-Software-0 כתב בשגיאה בהעלאת קובץ ב api:
@avi-rz ניסת ב POST?
@avi-rz כתב בשגיאה בהעלאת קובץ ב api:
axios.post(url)
ברור!
-
@avi-rz כתב בשגיאה בהעלאת קובץ ב api:
@amp-Software-0 כתב בשגיאה בהעלאת קובץ ב api:
@avi-rz ניסת ב POST?
@avi-rz כתב בשגיאה בהעלאת קובץ ב api:
axios.post(url)
ברור!
גם ככה, נכנס בלי ירידת שורה
axios({url,method: 'POST'})
-
@avi-rz
לא שמתי לב ששינת את זה ל POST
אבל עיקר כוונתי היתה לא לשלוח את זה כפרמטר ב url אלא לשלוח את זה בגוף הבקשה
אצלי זה עולה כמו שצריך
אני משתמש עם PHP אז לא יעזור לך דוגמת קוד
אבל אצלי זה עולה כמו שצריך (תוכל לנסות גם ב postman ולשלוח כ raw ולא ב formDataׁ) -
@amp-Software-0 אכן, שלחתי את זה בתוך הפרמטרים ולא ה URL וזה עבד!
תודה!