יש"כ לכל המסייעים עד עתה.
כמצוות הרבנים @יוסף בן שמעון (איך מאזכרים שם עם רווח באמצע?) ו-@dovid, אני מנסה לבצע זאת דרך השרת.
נתקלתי בבעיה בשליחת הפרמטר של שם העיר העברי לשרת, חיפשתי קצת ומצאתי שצריך לקודד קודם את השם.
עשיתי את זה באמצעות encodeURI בצד האנגולר, הכנסתי ל-header, ואכן עובר ערך מקודד לשרת. דוגמא להידר (עיר:ירושלים ) המופיע ב-debug של chrome:
"cityname: %D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D"
הבעיה נכון לעכשיו היא, שהשרת משום מה לא יודע לפענח את המידע בחזרה:
כך נראה הקוד באנגולר:
let httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json;charset=utf-8',
cityName: encodeURI(currCityName)
}),
};
return this.http.get<Neighborhood[]>(this.URL, httpOptions);
ב- .net הקוד הוא כך
string currCity= Request.Headers.FirstOrDefault
(c=>c.Value== "cityName").ToString();
currCity = System.Net.WebUtility.UrlDecode(currCity);
אני מקבל ב-currCity את הסטרינג הבא "[,]" , לא ברור לי מה המשמעות של זה (מערך ריק?)
ניסיתי גם את הסינטקס הזה:
Request.Headers.FirstOrDefault (c=>c.Key== "cityName").Value;
אבל אני מקבל null ב-currCity.
איך בדיוק מתפעלים את הפיענוח של ה-URI?
לחילופין יש דרך אחרת להעביר מידע עברי ב-headers?