הוספה דינאמית של פרמטר לבקשת POST

אדם 08

New member
הוספה דינאמית של פרמטר לבקשת POST

שלום, יש לי אתר שמבקש מווב-סרוויס הפעלה של מתודה מסוימת עם פרמטרים. שיטת הבקשה: POST. אין לי גישה לקוד קליינט (אתר האינטרנט) אלא רק לסרבר ולווב-סרוויס. אני רוצה לעשות אחד המשנים (מה שיותר קל) 1. להפוך את הבקשה לGET, לשרשר את הפרמטרים הקיימים של POST, להוסיף ערך חדש של פרטמר חדש ולהפנות למתודה אחרת (שמקבלת +1 יותר פרמרטים). 2. להפנות את בקשת הPOST, בתוספת פרמטר חדש למתודה אחרת. אודה לכל עזרה שהיא
 

pitoach

New member
מה השאלה? איזה שיטה יותר טובה?

אתה מתאר מצב ו 2 אפשרויות אבל לא הבנתי מה אתה שואל
היכן השאלה? האם אתה שואל "איזה שיטה יותר טובה" ? אם זה השאלה אז צריך לזכור את ההבדלים בין POST ל GET למשל POST מאפםשר העברת נתונים בילתי מוגבלת תיאורטית ו GET מוגבל באורך שרשרת (אם אני זוכר נכון רשמית התקן קובע עד 1024 תווים אבל יש דפדפנים שטוענים שהם מאפשרים בלי הגבלה) GET ניתן ליירוט הרבה יותר בקלות GET הרבה יותר קל לפיתוח בדרך כלל כי אין צורך להוסיף לפעמים בצד הלקוח כלום (פשוט מוסיפים לכתובת עוד חלק) ו POST מחייב הוספת קוד. ההבדל זניח לטעמי ברוב המקרים אבל לפעמים צד הלקוח לא זמין אלייך POST מועבר בצורה נסתרת בכותרים ו GET בכתובת בצורה ברורה למשתמש ועוד אם זו היה השאלה אז POST נראה לי עדיף לפי המצב הנוכחי והנתונים שיש לנו. אם השאלה היא כיצד לבצע את זה אז שוב אין לנו אפיון וקוד של השירות שלך אבל בגדול נראה שלזה נועדו בדיוק האפשרויות של ירושה. הייתי יורש את המתודה הקיימת ומוסיף לה פרמטר ומודיע ללקוח לפנות למתודה החדשה אם אתה לא רוצה להודיע ללקוח כלום אז אתה יכול לנצל את הריבוי צורתיות של ה OOP ולהכין מתודה נוספת באותו שם. לבדוק בבנאי פרמטרים במגיעים ולמלא פרמטר שחסר וכך להפעיל את המתודה המתאימה לפי מספר הפרטרים שמועברים אליה או פשוט במתודה הקיימת להוסיף חלק שמכניס את הנתון החסר בלי שייע בכלל מהלקוח. שוב: חסר לנו נתונים של האפיון כמו למשל מה אתה רוצה להוסיף, מהיכן מגיע הערך שלו (לקוח/שירות)... אבל נראה לי שזה מכסה את העיקר
 

אדם 08

New member
מצטער

השאלה שלי הייתה - איזו מבין השיטות קלה יותר למימוש (אם בכלל אפשרית) ?
 

אדם 08

New member
לא מצליח להפעיל מתודה בGET

שאלה: יש לי וו-סרויס עם מתודה מסוימת. היא חשופה גם בקובץ ASMX וגם בsvc. אני לא מצליח להפעיל אותה בASMX An attempt was made to call the method \u0027getData\u0027 using a GET request, which is not allowed.","StackTrace" בדקתי בweb.cnfig ויש הגדרה לקבל GRT. וכשאני מנסה להפעיל אותה דרך svc חוזרת השגיאה: This collection already contains an address with scheme http קראתי שזה בעיה של קנפוג בIIS אבל זה לא עזר. למישהו יש רעיון איך לפתור את זה?
 

pitoach

New member
אתה יכול לצרף לנו את הפרוייקט כדי שנבדוק?

אם לא מדובר במשהו ארוך מדי אוכלי אוכל לעבור על הפרוייקט ולראות שאין בו תקלות מבחינת הגדרות (רוב ההגדרות שמבצעים ב IIS אפשר לשלוט גם דרך הפרוייקט... למשל חלק מההגדרות בקבצי ההגדרות web.config ניתנים לגישה גם מה IIS והפוך ובכל מקרה הקוד יאפשר לנסות להריץ אותו אצלנו ולוודא שהכל טוב ... בהנחה שיהיה לי זמן לעבור על זה) * בדיוק עכשיו אני עובד על פרוייקטון קטןטן של כמה שעות של שירות אינטרנט + שירות וינדוס שמדברים אחד עם השני וכמובן בהמשך אכין לקוח קטן לדפדפן
עד הערב הכל יהיה מוכן כמובן
 

pitoach

New member
עשית 3 דברים טובים בהודעה כאן ../images/Emo45.gif

1. זכרת לתת מילה טיובה למי שהשקיע לנסות לעזור (הרבה שוכחים וביננו אבל בלי שאחרים ישמעו... יש הרבה שנכנסים כדי לשים את שורת הקישור מתחת להודעה והלרוויח את הפירסום אבל יש מי שנכנס לעזור בדיוק מהסיבה הזו
) 2. מצאת את התשובה הסופית לבד. הפורום נועד לטעמי לכוון... לתת עזרה אבל לא לתת קודים מוכנים או פתרון לשיעורי בית
תפקיד המפתח להשקיע בסוף להיע לפתרון הסופי לפי העזרה שקיבל או מצא (ולעיתים גם קודים מוכנים שמוצאים אחרי השקעה וקישורים שבודקים) 3. שמת את הפתרון שמצאת בפורום הרבה אנשים שוכחים שכל שאלה שיש להם מחר תהיה לאחרים והתנהגות נכונה זה תמיד בסיום שירשור לשים את הפתרון שנמצא כדי שלבאים בתור יהיה תשובה אם יחפשו בגוגל למשל הארה לגבי הקוד שיש שם: כדאי לזכור את עניין הפולימורפיזים של דוט נט (אחת משלושת התכונות של שפות OOP - ריבוי התנהגותיות). שים לב שאתה יכול להחזיק מספר מתודות באותו שם ולהפעיל אחת כשמגיעים ב POST ואחת כשמגיעים ב GET [ScriptMethod(UseHttpGet = true)] הקוד מעל הוא מטהדטא הקובע שמדובר בשיטת GET אם ממש רוצים ניתן ליצור מתודה נפרדת ל POST
 

אדם 08

New member
שאלה אחרת

ךצערי באנגלית- כי פרסמתי בפורום דובר אנגלית
Hello, I write server-side code. There is a web-site which asks for a file named old.png I want the server to check the reffere url. If it's http://www.domain2.com/Bing I want it to redirect that request to another file in a different path, named new.png For some odd reason I cannot make it rigt. could you plsease help me understand my mistake? from fiddler:
קוד:
 GET http://www.domain1.com/images/old.png HTTP/1.1 Accept: */* Referer: http://www.domain2.com/Bing Accept-Language: en-us User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; WOW64; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Accept-Encoding: gzip, deflate If-Modified-Since: Wed, 27 Oct 2010 10:12:22 GMT If-None-Match: "087e171bf75cb1:0" Host: www.domain1.com Connection: Keep-Alive
i guess the website address domain1 because it's hard-coded path (My guess). The strange thing is that i fired-up the whole scenario by tuping the url http://www.domain2.com/Bing , but the host is written:www.domain1.com so it's all blur for me. My htaccess file which is attaced to http://www.domain2.com/ via ISAPI (IIS)
קוד:
 RewriteEngine On RewriteCompatibility2 On RepeatLimit 32 RewriteBase RewriteRule ^\/Bing$ http://www.domain2.com [NC,L,P] RewriteCond %{HTTP_REFERER} ^http://www.domain2.com/Bing [or] RewriteCond %{HTTP_REFERER} ^http://www.domain2.com/bing RewriteRule ^(.*)\/ActivitiesService.asmx\/GetLatest$ http://www.domain2.com/ActivitiesService.asmx/GetLatestSearchActivities [NC,L,P] RewriteRule ^http://www.domain1.com/images/old.png$ http://www.domain2.com/images/new.png [NC,L] The rest is less relevant
Thanks for any asistance​
אם יש צורך אתמלל לעברית תודה מראש לכל עזרה!
 
למעלה