עבור לתוכן
Magic DevHub
zvi

משלוח קובץ json באמצעות httppost

Recommended Posts

שלום,

אני מנסה לשלוח קובץ json לשירות ממשלתי (המשרד להגנת הסביבה). למיטב ראייתי ובדיקתי, מבחינת המבנה - הקובץ בסדר. לצורך בדיקה, אני מכניס את ה BODY לקובץ TXT, מסמן את כל הרשומה ומעתיק אותה לתוך מערכת בדיקה הנקראת Fiddler. כאשר אני משגר את הרשומה משם - היא עוברת באופן תקין. ניסיתי לשלוח את הפקודה הן כשה Body מוגדר כ TXT והן כ blob וכן לגבי שדה הresult וכל שילוב בין השניים. כמוכן: header עם ובלי charset=utf-8.

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

אחד מחברינו, בני פורת, הסביר שהבעיה בסימנים המיוחדים וברווח. לצורך כך צייד אותי בטובו בפקודת Rep מורכבת לשיפור המצב. המערכת הייתה אמורה לתרגם רווח ל   %20. אך כנראה שגם זה אינו חביב על המערכת הקולטת. האם ייתכן שמג'יק מוסיף או גורע משהו מהרשומה?

יש רעיונות לשיפור?

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

היי צבי,

למה אתה לא עובד עם פונקציה REPSTR במקום REP.

גם לי הייתה בעיה והחלפת רווח ב %20 פתר את הבעיה

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

רומן שלום,

צר לי שלא ראיתי עד היום את תשובתך.

אני אכן עובד עם repstr, טעיתי בעת כתיבת הבעיה.

העניין - ככל הנראה - שעל אף שאני רושם ב HEADER את Charset=utf8, המג'יק אינו מתרגם את זה בצורה הנכונה. והאמת היא שאיני יודע מה היא הצורה הנכונה, אני רק מקבל היזון חוזר שמה שאני שולח - אינו נכון.

אם אני שולח בלי המרה (repstr) על כל השדה העברי - אני מקבל  דבר כזה:      öáé âøééáø  . אם אני שולח עם repstr, אז אני מקבל שדה שמלא כולו ב XX%  ( ה XX - אותיות שונות). גם עם הרווח: אם אני כותב פקודה repstr(fname sname,' ',"%20') אזי אני מקבל öáé%20âøééáø. וכמובן שהמערכת המקבלת - אינה מקבלת (גם בגלל סימן %).

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

תודה

צבי

 

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

אם אתה רוצה תעלה תוכנית כאן או בפרטי אנסה לפתור את הבעיה

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

רומן שלום,

תודה על עזרתך.

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

נותר לי עוד לבדוק האם העובדה שבממוצע העברת כל תנועה נמשכת בין 6 ל 12 שניות, היא בעיה אצלי  (בעת ההרצה אני רואה שהמערכת נכנסת למצב של not responding) או בעיה של התעבורה (הכבישים לירושלים? :D) או בעיה במשרד להגנת הסביבה. אני משער דווקא שתגובת, או חוסר תגובת המערכת נובעת דווקא מזה שממתינה למענה מהמשרד.

תודה

צבי

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

היי צבי ,

בכיף.

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

לדעתי בעיה של not responding לא קשורה למג'יק ,אלה יותר לתעבורה וגם עיבוד נתונים בצד שלהם.

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים
לפני 2 שעות romang אמר:

היי צבי ,

בכיף.

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

לדעתי בעיה של not responding לא קשורה למג'יק ,אלה יותר לתעבורה וגם עיבוד נתונים בצד שלהם.

רומן שלום,

1. לא נראה לי שזה יעבוד בלי כל ההמרות (אולי אזדקק להמרות אחרות).

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

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

יומטוב

צבי

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים
לפני 3 שעות zvi אמר:

רומן שלום,

1. לא נראה לי שזה יעבוד בלי כל ההמרות (אולי אזדקק להמרות אחרות).

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

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

יומטוב

צבי

היי צבי,

כל כמה זמן אתה צריך להפעיל את זה ומה לעשות עם התשובה?

בגדול אתה היכול להפעיל scheduler task של מערכת הפעלה שיפתח מג'יק ,יריץ את התוכנית ויסגור את מג'יק. 

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

רומן,

המערכת פועלת משעה 04:30 עד 22:00 ומבצעת כל הזמן פעולות, בין 200 פעולות ביום (בעיקר משעות הבוקר ועד הצהריים) ומגיע בתקופות מסויימות גם ל 300-400 פעולות ביום. מדובר על אותן פעולות שעליהן אני צריך לדווח למשרד. לכאורה, הדבר הטוב ביותר היה לשלוח כל רשומה מייד עם רישום הפעולה; אבל לאור העובדה שזה נמשך תשע שניות ואף יותר, סביר למדי שהמפעילים יכו אותי כ 200 פעמים ביום ובתקופות העמוסות - יקללו אותי מהבוקר ועד הלילה. לפיכך אני מתכנן לבצע את זה מספר פעמים ביום, אבל אני רוצה לבצע את זה בשרת על מנת לחסוך הן בתעבורת נתונים ברשת והן בעצירת העבודה באחת התחנות. אני ארשום את מס' התנועה האחרונה ששודרה.

את התשובה עלי לבדוק: אם מודיע "isSucceeded":true אזי הכל טוב. הבעיה תהיה: א' אם לא - עלי יהיה ככל הנראה לבחון כל רשומה כזו (עדיין איני יודע כיצד לעשות זאת אוטומטית) וכן לרשום, בנוסף למס' התנועה האחרונה  ששודרה, גם איזשהו Log של תנועות שלא עברו. אגב: גם התשובה מגיעה כקובץ json.

הצעתך להפעיל את ה task scheduler : זה עובד טוב? יכול לעבוד על השרת בלי בעיה? דורש רשיון runtime רגיל או enterprise (יש שם רשיון רגיל)?

תודה

צבי

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

יש לך כמה דרכים :

1) ה task scheduler עובד טוב בלי בעיה,דורש רישיון RUNTIME רגיל כאילו משתמש נכנס וביצע

2) לעלות בעצמך RUNTIME שיהיה פתוח ויבצע פעם בכמה זמן קריאה ל WEB SERVICE.דורש רישיון רגיל,חסרון שלא ניתן יהיה לעשות LOG OFF לשרת ,אלה לצאת ב DISCONNECT.

3) לעלות BROKER כ SERVICE ,דרוש רישיון enterprise לעלות מנוע של מערכת ותבצע לך פעם בכמה זמן את הקריאה ל WEB SERVICE.יתרון שניתן יהיה לבצע LOGOFF למחשב.

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

רומן שלום ובוקר טוב,

תודה.

אני אנסה את דרך מס' #1.

האם הדרך שמודיעה למג'יק להיכנס ליישום מס' X לתוכנית מס'  Y עדיין  בשימוש? אני צריך כמובן שאותו יישום שרץ בשרת יהיה בעל קובץ INI משלו, כדי שייכנס לתוכנית המתאימה. נכון?

יומטוב ושבוע טוב

צבי

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים
לפני 3 שעות zvi אמר:

רומן שלום ובוקר טוב,

תודה.

אני אנסה את דרך מס' #1.

האם הדרך שמודיעה למג'יק להיכנס ליישום מס' X לתוכנית מס'  Y עדיין  בשימוש? אני צריך כמובן שאותו יישום שרץ בשרת יהיה בעל קובץ INI משלו, כדי שייכנס לתוכנית המתאימה. נכון?

יומטוב ושבוע טוב

צבי

היי צבי,

"האם הדרך שמודיעה למג'יק להיכנס ליישום מס' X לתוכנית מס'  Y עדיין  בשימוש" בUNIPAAS לדעתי עדין עבד /StartProgramm ,לא בטוח. אם לא  ,פשוט לקרוא אותה תוכנית דרך תוכנית ראשית בתנאי של שם לוגי .

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

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

רומן שלום,

בחזרה לעניין הראשון:

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

מתברר ששוב יש בעיות שפה ("עברית קשה שפה" כבר אמרו?).  ניסיתי להעביר בכלל בלי הסבת הנתונים מיוניקוד לאנסי; ניסיתי לבצע פקודת ansitoutf8 ,ועוד וריאציות בנושא זה. האם יש איזשהו pagecode אחר שכדאי לנסות?

תודה

צבי

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

התחבר או הרשם על מנת להגיב.

עליך להיות משתמש רשום על מנת להגיב

צור חשבון

צור חשבון חדש בקהילה בקלי קלות.

רישום חשבון חדש

התחבר

משתמש קיים? התחבר.

התחבר עכשיו

×