בקשת POST בC# יוצרת שגיאה
-
@עידו כתב בבקשת POST בC# יוצרת שגיאה:
@צדיק-תמים יכול להיות שהספריה שמשתמשים בה בC# שולחת בצורה מסוימת שמשום מה לא מקובלת על השרת של ימות המשיח.
לא יכול להיות
כלומר יש פרוטוקול HTTP, לא כל ספריה ממציאה משהו משלה
ואם זה בעיה כללית בטיפול בבקשות אז אל תקשר את זה לC# -
@עידו השאלה שלך נובעת מחוסר הבנה בסיסי כיצד עובד פרוטוקול HTTP.
כפי שכתב @צדיק-תמים השרת של ימות המשיח יודע לקבל בקשת HTTP, ולכן כל שפה שיודעת לשלוח בקשות HTTP יכולה לתקשר איתו. זה לא משנה אם הבקשה נשלחת מ-C# Python, או שפה חדשה שתמציא – כל עוד הפורמט נכון, השרת יוכל לטפל בה.ממליץ לך ללמוד את הפרוטוקולים הרלוונטיים לפני שאתה ממשיך לכתוב קוד.
-
@yosef-avitan כתב בבקשת POST בC# יוצרת שגיאה:
@עידו השאלה שלך נובעת מחוסר הבנה בסיסי כיצד עובד פרוטוקול HTTP.
כפי שכתב @צדיק-תמים השרת של ימות המשיח יודע לקבל בקשת HTTP, ולכן כל שפה שיודעת לשלוח בקשות HTTP יכולה לתקשר איתו. זה לא משנה אם הבקשה נשלחת מ-C# Python, או שפה חדשה שתמציא – כל עוד הפורמט נכון, השרת יוכל לטפל בה.ממליץ לך ללמוד את הפרוטוקולים הרלוונטיים לפני שאתה ממשיך לכתוב קוד.
מתי לאחרונה שלחת לשרת של ימות המשיח בקשת POST?
ואיך זה ש-3 מתכנתים ניסו לשלוח בקשת POST ולא הצליחו וכשניסו GET (לפחות 2 ניסו) כן הצליחו?
אני חייב להודות שהבוקר דיברתי עם נציג של ימות המשיח והוא אמר שאתמול בלילה טיפלו בתקלה שהיתה עם בקשות הPOST אני לא יודע אם זה קשור למה שכתבתי כאן, ואני לא יודע אם זה קשור בכלל לבעיה שלי עם C# כי נתקלתי בבעיה כבר לפני הרבה זמן.
-
@עידו לכן אני מציע לבדוק מה אתה שולח בפועל שגורם לבעיה שלדבריך אין בשפות אחרות, ואז לשחזר אותה בכלי שלא קשור לקוד, לדוגמה פוסטמן או CURL
-
@צדיק-תמים כתב בבקשת POST בC# יוצרת שגיאה:
@עידו לכן אני מציע לבדוק מה אתה שולח בפועל שגורם לבעיה שלדבריך אין בשפות אחרות, ואז לשחזר אותה בכלי שלא קשור לקוד, לדוגמה פוסטמן או CURL
אני אשמח לדעת על מישהו ששלח לאחרונה בקשת POST לימות המשיח, אם היא התקבלה בהצלחה, וכן הבקשה שלי התקבלה באתר אחר בהצלחה (jsonplaceholder) אז כנראה שיש בעיה עם הבקשה שלי דוקא מול ימות המשיח, ואם הוברר מעל לכל ספק שהיא תקינה (שהרי היא התקבלה בהצלחה באתר אחר) אז כנראה שהבעיה היא אצל ימות המשיח לא?
-
@עידו ממש עכשיו שלחתי בקשת POST באמצעות Postman. ושוב, ככל ואכן היתה / יש תקלה אצל ימות, אין לזה שום קשר לשפה כזאת או אחרת.
-
@צדיק-תמים כתב בבקשת POST בC# יוצרת שגיאה:
@עידו לכן אני מציע לבדוק מה אתה שולח בפועל שגורם לבעיה שלדבריך אין בשפות אחרות, ואז לשחזר אותה בכלי שלא קשור לקוד, לדוגמה פוסטמן או CURL
איך שולחים בדרך אחרת? ואיך אפשר לבדוק שזו אותה הודעה? הרי היא עוברת תהליך של המרה בקוד?
אני אעשה את הבדיקה הזו בשמחה, למה לא. אולי אתם צודקים, מי יודע?!
-
@עידו לא אמרתי שהבעיה לא בימות. בהחלט ייתכן שהבעיה בימות. אבל אל תכניס C# לסיפור כי:
א. זה גורם אוטומטית להניח שהבעיה בקוד שלך, כי אין הבדל בין השפות
ב. זה מקשה לשחזר ולתקן את הבאג -
@צדיק-תמים כתב בבקשת POST בC# יוצרת שגיאה:
@עידו לא אמרתי שהבעיה לא בימות. בהחלט ייתכן שהבעיה בימות. אבל אל תכניס C# לסיפור כי:
א. זה גורם אוטומטית להניח שהבעיה בקוד שלך, כי אין הבדל בין השפות
ב. זה מקשה לשחזר ולתקן את הבאגאבל 3 מתכנתים שונים בC# ניסו ולא הצליחו, למה אתה מניח שהבעיה בקוד שלי?
ולמה בהקשה שלי (ושל עוד 2 מתכנתים) בC# לא מצליחה להקלט בשרת ואילו הבקשה שלכם כן מצליחה? -
@עידו כי אמרת את המילה C#. ולא יכול להיות שיש הבדל בין השפות "איכשהו" גורם לבעיה, כי יש פרוטוקול אחיד
@עידו כתב בבקשת POST בC# יוצרת שגיאה:
ואילו הבקשה שלכם כן מצליחה?
מי זה שלכם?
תביא קוד שנכשל לעומת קוד שמצליח -
@צדיק-תמים כתב בבקשת POST בC# יוצרת שגיאה:
@עידו כי אמרת את המילה C#. ולא יכול להיות שיש הבדל בין השפות "איכשהו" גורם לבעיה, כי יש פרוטוקול אחיד
@עידו כתב בבקשת POST בC# יוצרת שגיאה:
ואילו הבקשה שלכם כן מצליחה?
מי זה שלכם?
תביא קוד שנכשל לעומת קוד שמצליחצודק, של יוסף אביטן, אמר שניסה עכשיו והצליח.
בדקת כאן? כי שם נמצא כל הדיון, כאן זה לאחר הסקת מסקנות.
-
@עידו כתב בבקשת POST בC# יוצרת שגיאה:
יוסף אביטן
מי זה? @soris1989? הוא כותב שגם הוא לא הצליח בPOST
אני רוצה שתראה לי שהבעיה היא רק בC# -
@צדיק-תמים
זה קוד שלא הצליח לימות המשיח והצליח לאתר אחרprivate async void button3_Click(object sender, EventArgs e) { using (HttpClient client = new HttpClient()) { string url = $"https://www.call2all.co.il/ym/api/UploadTextFile?token={numberTb.Text}:{passTb.Text}"; var jsonContent = new { what = "ivr2:SaleProducts/sale_products_name.ini", contents = textBox1.Text }; var jsonContent1 = System.Text.Json.JsonSerializer.Serialize(jsonContent); var content = new StringContent(jsonContent1, Encoding.UTF8, "application/json"); // הצגת הבקשה שנשלחת textBox1.Text += "\r\n📤 בקשה שנשלחה:\r\n"; textBox1.Text += $"URL: {url}\r\n"; textBox1.Text += $"Header: {content.Headers} \r\n"; textBox1.Text += $"Body: {jsonContent1}\r\n"; textBox1.Text += "-----------------------------------\r\n"; // שליחת הבקשה HttpResponseMessage response = await client.PostAsync(url, content); string responseText = await response.Content.ReadAsStringAsync(); // הצגת התגובה מהשרת textBox1.Text += "📥 תגובה מהשרת:\r\n"; textBox1.Text += $"Status Code: {response.StatusCode}\r\n"; textBox1.Text += $"Response: {responseText}\r\n"; textBox1.Text += "===================================\r\n"; } }
לעומת קוד שכן מצליח
private async void button3_Click(object sender, EventArgs e) { using (HttpClient client = new HttpClient()) { string url = $"https://www.call2all.co.il/ym/api/UploadTextFile?token={numberTb.Text}:{passTb.Text}"; /* var jsonContent = new { what = "ivr2:SaleProducts/sale_products_name.ini", contents = textBox1.Text }; var jsonContent1 = System.Text.Json.JsonSerializer.Serialize(jsonContent); var content = new StringContent(jsonContent1, Encoding.UTF8, "application/json");*/ Dictionary<string, string> json = new Dictionary<string, string> { { "what", "ivr2:SaleProducts/sale_products_name.ini" }, { "contents", textBox1.Text } }; var content = new FormUrlEncodedContent(json); // הצגת הבקשה שנשלחת textBox1.Text += "\r\n📤 בקשה שנשלחה:\r\n"; textBox1.Text += $"URL: {url}\r\n"; textBox1.Text += $"Header: {content.Headers} \r\n"; textBox1.Text += $"Body: {json}\r\n"; textBox1.Text += "-----------------------------------\r\n"; // שליחת הבקשה HttpResponseMessage response = await client.PostAsync(url, content); string responseText = await response.Content.ReadAsStringAsync(); // הצגת התגובה מהשרת textBox1.Text += "📥 תגובה מהשרת:\r\n"; textBox1.Text += $"Status Code: {response.StatusCode}\r\n"; textBox1.Text += $"Response: {responseText}\r\n"; textBox1.Text += "===================================\r\n"; } }
-
@צדיק-תמים כתב בבקשת POST בC# יוצרת שגיאה:
@עידו כתב בבקשת POST בC# יוצרת שגיאה:
יוסף אביטן
מי זה? @soris1989? הוא כותב שגם הוא לא הצליח בPOST
אני רוצה שתראה לי שהבעיה היא רק בC#יוסף אביטן זה yosef avitan שכתב מקודם שהצליח
soris1989 גם הוא כתב בC#
הקוד שעובד זה באדיבותו, הוא שלח בPOST אבל לא כג'סון, וזה כן התקבל, ניסיתי את זה עכשיו שוב כדי לוודא שזה נכון.
-
@עידו אה, yosef avitan בנושא הזה, מעניין אבל הוא לא הביא קוד אז אני לא יודע מה הוא עשה
לגבי soris1989 ברור שיכול להיות הבדל בין סוגי content type, אתה אמרת שיש הבדל בשליחה בHTTP POST בין השפות -
@צדיק-תמים כתב בבקשת POST בC# יוצרת שגיאה:
@עידו אה, yosef avitan בנושא הזה, מעניין אבל הוא לא הביא קוד אז אני לא יודע מה הוא עשה
לגבי soris1989 ברור שיכול להיות הבדל בין סוגי content type, אתה אמרת שיש הבדל בשליחה בHTTP POST בין השפותאתה צודק.
אבל ימות המשיח לפי התיעוד דורשים ג'סון, והם לא מוכנים לקבל אותו כשהוא נשלח ע"י ספריה מסוימת (שבה משתמשים היום) בשפה מסוימת, אולי אני טועה אבל לפי הבנתי יש להם בשרת בעיה עם איך שC# מממשים את הפרוטוקול הזה.
במילים אחרות, אם אני - מתכנת C# (אני לא, למעשה אני רחוק מזה, אבל זה לא הנקודה) - רוצה לכתוב קוד שיתקשר עם השרת שלהם, והולך לפי התיעוד הרשמי שלהם, אני בבעיה, מה שאין כן אם אני מתכנת בPHP או שפות אחרות, שאז הכל חלק.
-
@עידו כתב בבקשת POST בC# יוצרת שגיאה:
והם לא מוכנים לקבל אותו כשהוא נשלח ע"י ספריה מסוימת (שבה משתמשים היום) בשפה מסוימת, אולי אני טועה אבל לפי הבנתי יש להם בשרת בעיה עם איך שC# מממשים את הפרוטוקול הזה.
במילים אחרות, אם אני - מתכנת C# (אני לא, למעשה אני רחוק מזה, אבל זה לא הנקודה) - רוצה לכתוב קוד שיתקשר עם השרת שלהם, והולך לפי התיעוד הרשמי שלהם, אני בבעיה, מה שאין כן אם אני מתכנת בPHP או שפות אחרות, שאז הכל חלק.
על זה בדיוק אני אומר שאין כזה דבר (כלומר הכל יכול להיות תיאורטית, הכוונה שיש לזה סבירות אפסית), ובוא ננסה להבין איפה שורש הבעיה. כי היא ב100% לא במימוש של C#
אתה מכיר את mitmproxy? יש לו ממשק וובי שמאפשר לראות את התוכן בפועל של בקשות -
@צדיק-תמים כתב בבקשת POST בC# יוצרת שגיאה:
@עידו כתב בבקשת POST בC# יוצרת שגיאה:
והם לא מוכנים לקבל אותו כשהוא נשלח ע"י ספריה מסוימת (שבה משתמשים היום) בשפה מסוימת, אולי אני טועה אבל לפי הבנתי יש להם בשרת בעיה עם איך שC# מממשים את הפרוטוקול הזה.
במילים אחרות, אם אני - מתכנת C# (אני לא, למעשה אני רחוק מזה, אבל זה לא הנקודה) - רוצה לכתוב קוד שיתקשר עם השרת שלהם, והולך לפי התיעוד הרשמי שלהם, אני בבעיה, מה שאין כן אם אני מתכנת בPHP או שפות אחרות, שאז הכל חלק.
על זה בדיוק אני אומר שאין כזה דבר (כלומר הכל יכול להיות תיאורטית, הכוונה שיש לזה סבירות אפסית), ובוא ננסה להבין איפה שורש הבעיה. כי היא ב100% לא במימוש של C#
נכון, היא במימוש של ימות המשיח, כי שם זה לא עובד... באתרים אחרים כן...
-
@צדיק-תמים כתב בבקשת POST בC# יוצרת שגיאה:
אתה מכיר את mitmproxy? יש לו ממשק וובי שמאפשר לראות את התוכן בפועל של בקשות
לא מכיר, אבל גם jsonplaceholder נותן אפשרות
-
@עידו כתב בבקשת POST בC# יוצרת שגיאה:
@צדיק-תמים כתב בבקשת POST בC# יוצרת שגיאה:
@עידו כתב בבקשת POST בC# יוצרת שגיאה:
והם לא מוכנים לקבל אותו כשהוא נשלח ע"י ספריה מסוימת (שבה משתמשים היום) בשפה מסוימת, אולי אני טועה אבל לפי הבנתי יש להם בשרת בעיה עם איך שC# מממשים את הפרוטוקול הזה.
במילים אחרות, אם אני - מתכנת C# (אני לא, למעשה אני רחוק מזה, אבל זה לא הנקודה) - רוצה לכתוב קוד שיתקשר עם השרת שלהם, והולך לפי התיעוד הרשמי שלהם, אני בבעיה, מה שאין כן אם אני מתכנת בPHP או שפות אחרות, שאז הכל חלק.
על זה בדיוק אני אומר שאין כזה דבר (כלומר הכל יכול להיות תיאורטית, הכוונה שיש לזה סבירות אפסית), ובוא ננסה להבין איפה שורש הבעיה. כי היא ב100% לא במימוש של C#
נכון, היא במימוש של ימות המשיח, כי שם זה לא עובד... באתרים אחרים כן...
אתה יודע מה זה פרוטוקול? ובפרט מה זה פרוטוקול HTTP?
אם תלמד את זה תבין למה לא יכול להיות שיש בעיה בימות והיא צצה רק כששולחים HTTP POST בC# ולא כששולחים HTTP POST בשפות אחרות. בשום שלב לא טענתי שאין בעיה בימות אלא שאין שום קשר ל C#
אגב לגבי mitmpproxy, יש גם את proxyman עם ממשק יותר ידידותי ונסיון חינם