API לקבלת שערי מט"ח
-
בתכנות, תמיד תמיד יש תקלות ותמיהות.
אבל זה לא עוצר אותך מלהתקדם אם אתה לא ניגש לבעיה ככה:@ש-ב-ח אמר בAPI לקבלת שערי מט"ח:
אבל מקוד זה לא עובד
אם אתה רוצה להתקדם בחיים,
אתה צריך להבין שמה שלא עובד זה מרתק/מקדם לא פחות ממה שכן, ושווה להשקיע מחקר לראות מה בדיוק קורה שמה. -
אוקי בא אספר לך בינתיים איך התקדמתי בבעיה.
לקחתי את הקוד שלך ופתחתי את הקונסול של הדפדפן והדבקתי (בתוספת שורה שמפעילה את הפונקציה).
קיבלתי שגיאה ארוכה של Mixed Content שאומרת שאני מנסה לגשת לhttp מתוך דף מאובטח של https.
אז התקדמתי, ושיניתי בקוד שלך לhttps והרצתי שוב, וקיבלתי שגיאה ארוכה לא פחות של CORS policy, כלומר אתר תחומים לא מורשה לגשת לבנק ישראל.
אז הלכתי לאתר בנק ישראל ומשמה פתחתי את הקונסול והרצתי, ושמה קיבלתי שגיאה שקשורה לJSON - התוכן מתחיל בתו לא צפוי שהוא <.
הסתכלתי בNetwork לראות איך נראית התשובה, והנה היא XML! בטח הרי זה כתוב מפורש בכתובת currency.xml רק שלא שמתי לב.
טוב אז אני יודע לענות לך בפורום שהבעיה היא שזה לא JSON. -
@dovid אמר בAPI לקבלת שערי מט"ח:
אם אתה רוצה להתקדם בחיים,
אתה צריך להבין שמה שלא עובד זה מרתק/מקדם לא פחות ממה שכן, ושווה להשקיע מחקר לראות מה בדיוק קורה שמה.בשביל זה גם ניסיתי הכל וגם אני נתקלתי בcros...
(חשוב להדגיש שבאתר הבנק הכתובת מופיעה HTTP ולא HTTPS, לא שזה ראיה גדולה...)
וכבר הבנתי שהבנק לא מרשה...גם ידעתי שככל הנראה בסוף תהיה הבעיה של הJSON רק חיכיתי וציפיתי לראות את השגיאה הזאת עולה (הבנתי שגם לזה אצטרך למצוא פיתרון) אבל כל עוד היא לא עלתה... לא היה לי מה להמשיך.
בכל מקרה לא הבנתי מה כתב @yossiz ב
@yossiz אמר בjs- שימוש ב fetch לקובץ xml:@ב-ל צודק, כנראה שזה לא מיועד לשימוש בצד לקוח (או שהם עדיין לא שמעו על CORS...)
האם בצד שרת זה כן יעבוד?
-
@ש-ב-ח כנראה שעשית משהו לא נכון.
הרצתי משרת:curl https://www.boi.org.il/currency.xml?curr=01
וקיבלתי במענה:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <CURRENCIES> <LAST_UPDATE>2021-03-15</LAST_UPDATE> <CURRENCY> <NAME>Dollar</NAME> <UNIT>1</UNIT> <CURRENCYCODE>USD</CURRENCYCODE> <COUNTRY>USA</COUNTRY> <RATE>3.309</RATE> <CHANGE>-0.211</CHANGE> </CURRENCY> </CURRENCIES>
-
@dovid אמר בAPI לקבלת שערי מט"ח:
המילים "לא נותן" "לא עובד", לא נסבלים.
תכתוב מה התוצאה, מה השגיאה מה הפלט.@ש-ב-ח אמר בAPI לקבלת שערי מט"ח:
הוא מחזיר 404
-
-
@dovid אמר בAPI לקבלת שערי מט"ח:
@yossiz אולי תענה גם לו
https://wordpress.stackexchange.com/q/341706הוא מגדיר user-agent ועדיין לא עובד לו