
GET מבקשת מידע, POST מוסיפה מידע חדש, PUT מעדכנת רשומה שלמה, PATCH עדכון חלקי (למשל רק מחיר והנחה בלי השם), ו-DELETE מוחק. שרת REST (Representational State Transfer) מבין לפי המילה והנתיב מה לעשות. לתרגול משתמשים באתר JSONPlaceholder, שמדמה שירות כזה, והבקשה היא להוסיף משתמש עם שם, אימייל וטלפון.TextDownloader ל-PostSender עם Refactor (Shift+F6), כי ייעודה כבר אחר. ה-Activity מכילה שדות לשם, אימייל וטלפון, כפתור הוספה ו-TextView להצגת תשובת השרת.EditText, מגדירים את כתובת ה-URL של הנתיב, ובונים מחרוזת bodyParameters עם String.format בפורמט name=%s&email=%s&phone=%s. ב-POST הפרמטרים נשלחים בגוף הבקשה ולא ב-query string.new PostSender(this).execute(link, bodyParameters).doInBackground: params[0] הוא הקישור ו-params[1] הפרמטרים. מוסיפים OutputStream, OutputStreamWriter ו-BufferedWriter, ומוסיפים את סגירתם ל-finally.connection.setRequestMethod("POST").connection.getOutputStream(), עוטפים ב-OutputStreamWriter עם קידוד UTF-8 (שתומך גם בעברית ורוסית), ואז ב-BufferedWriter. כותבים את bodyParameters ומיד קוראים ל-flush(), כי הכתיבה נשמרת קודם ב-buffer.AsyncTask שנבנה קודם, ומספיק לשנות את הבקשה ל-POST ולכתוב את הגוף.הטקסט המלא של הדקות הראשונות בהרצאה «Sending Post Requests» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
כאשר אנחנו מבצעים גלישה באינטרנט, אנחנו בעצם מבצעים HTTP Request. ואז כמובן שאנחנו מקבלים HTTP Response. כאשר אנחנו רוצים לקבל מידע מהשרת, אנחנו מבצעים בקשה שנקראת Get.
Get או מילים אחרות שהם מהוות את היעוד של הריקווסט. זאת המילה הראשונה שנשלחת בבקשה. ויש סדרת מילים כאלו שאנחנו יכולים לשלוח ושמתארות מה בעצם הייעוד המרכזי של הריקווסט.
GET זה אומר שאנחנו רוצים לקבל מידע בחזרה מהשרת. אם אנחנו רוצים להוסיף מידע לדוגמה ויהיה POST, שרת שעובד עם המילים האלה ויודע מה לעשות עם המילים האלה בהתאם למילים לבצע את הפעולה הדרושה, נקרא RESTful Service, וזה בעצם מעין שירות, נקרא REST, שזה קיצור של
Representational State Transfer, שמקבל את הייעוד הזה, את המילה הזאת, ומקבל כמובן את הנתיב לאן אנחנו גולשים, ולפי הנתיב ולפי המילה הוא יודע מה לעשות. בואו נראה בסרטון הזה איך אנחנו יכולים לשלוח ממכשיר אנדרואיד בקשה של פוסט לדוגמה, אבל לפני זה בואו נראה אילו עוד מילים קיימות ולאן אנחנו בעצם יכולים לגלוש אז אני נמצא כרגע בדפדפן רק ואני
רוצה לבצע חיפוש של JSON Lace Holder כאן אנחנו יכולים לראות שיש איזשהו אתר שמדמה שירות REST, זה בעצם Fake Online REST API בואו ניכנס אליו זה בשביל מתכנתים בשבילנו והאתר זה אומר לנו אני בעצם מסוגל לקבל כל מיני בקשות ואם אתם רוצים get אז אני אחזיר לכם מידע אם אתם רוצים post אז אני אוסיף לכם מידע
ובעצם אנחנו רואים כאן את המילים השונות המרכזיות שיש בשירות rest אז לדוגמה אנחנו רואים שיש לנו כאן get וזה בעצם בקשה למידע, כאן גולשים לכל מיני דפים שונים שאנחנו יכולים לראות אותם שקיימים כאן, כאן אנחנו רואים שיש post וזה בעצם מיועד להוספת מידע חדש לדטאבייס בשרת, put זה מילה שמתארת עדכון מלא או שמיועדת לעדכון של רשומה
מלאה, patch זאת מילה שמיועדת עבור שליחת בקשה של עדכון חלקי לדוגמה אם יש לי מוצר שמורכב משם מחיר והנחה אם אני רוצה להדכן גם את השם גם את המחיר וגם הנחה זה יהיה put אם אני רוצה להדכן לדוגמה רק את המחיר ואת ההנחה בלי את השם זה יהיה patch וdelete כמובן לצורך מחיקה אז אנחנו רוצים להשתמש כרגע בפוסט ולראות
איך זה ניתן לביצוע מאפליקציית האנדרואיד כאשר בואו נגלוש ליוזרס, ניכנס רגע ליוזרס ונראה שיש לנו כאן ממש רשימה של יוזרים ואנחנו כביכול רוצים להוסיף יוזר חדש לכל יוזר אנחנו רואים שיש קוד, שם, הקוד כמובן אמור להיווצר אוטומטית ואנחנו רואים שהקוד האחרון שקיים זה 10 ויש לכל יוזר שם, יוזרניים, אימייל, אדרס, טלפון, ובסייט וקומפני
אנחנו הולכים לבנות אפליקציה שמוסיפה יוזר חדש ובואו נניח שנוסיף רק שם, אימייל וטלפון עבור יוזר חדש שאנחנו רוצים להוסיף זה בעצם הנתיב שאנחנו רוצים לגלוש אליו שיטת הגלישה לא תהיה get, תהיה post וכמובן אנחנו צריכים לראות איך אנחנו שולחים את המידע הזה עבור השרת, name, email וטלפון אז יש לנו פה אפליקציה שהכנתי
כאן את הממשק משתמש שכבר מאפשר לקבל מהמשתמש שם, email וטלפון יש לנו פה לחצן להוספת ה-user החדש, ופה למטה יש לנו את אותו TextView שהיה לנו בסרטונים הקודמים, שמאפשר לנו להציג את המידע שהשרת מחזיר לנו בחזרה.
בקוד Java יש לנו כאן את הרכיבים השונים שהיו ב-UI, יש לנו פה את ה-Progress Dialog, ממש כמו שהיינו בסרטונים הקודמים, הנה כאן איתנו את רכיבי ה-UI השונים, לחצן add כרגע רק, יש לנו כאן את הטקסט דאונלודר הרגיל שהשתמשנו בו, ב-onabout ובגיל אנחנו מנקים את הטקסט view, אנחנו מתחילים דיאלוג, בסקסס אנחנו מציגים את הטקסט שמוחזר, אם יש שגיאה מציגים את השגיאה,
ואנחנו רואים כאן שירשנו את ה-callbacks בשביל לבצע את זה אז כעת בואו נראה מה אנחנו צריכים לעשות בכדי לשלוח מידע אז קודם כל אנחנו צריכים להחליף בכלל את השם TextDownloader כי זה לא הייעוד שלו אז בואו נלחץ על Shift F6 ונקרא למחלקה הזאת Post Sender מפני שאנחנו הולכים די לשנות אותה את התוכן שלה
והיא לא מיועדת בשביל להוריד מידע למרות שכשאנחנו שולחים Post Request אנחנו מקבלים משהו מהשרת אבל זה לא היהוד המרכזי היהוד המרכזי של השרת זה לא להביא לנו מידע כמו בגי-את אלא להוסיף מידע חדש שאנחנו שולחים לו והוא שולח לנו בחזרה אולי את המידע החדש שאוספנו איזה שהוא קוד, הצלחה או כישלון
כלומר את ה-HTTP Status Code ובשביל לציין לנו בעצם אם הצלחנו או נחשננו אבל יותר רגיוני לקרוא למחלקה הזאת Post Sender כי היא הולכת להיות קצת שונה מטקסט דאונלודר אנחנו נעשה פה Refactoring ואנחנו רואים שהוא שינלנו כאן לפוסט סנדר עכשיו מה שאנחנו רוצים לעשות בלחצן זה דבר ראשון לקבל את הנאים, האימייל והטלפון שהיוזר הכניס בתיבות
אז בואו ניקח string name, יש לנו את ה-edit text name, get text to string, נשכפל את זה גם לאימייל, ויש לנו פה את האימייל, נשכפל את זה לפון, יש לנו פה את הפון, והנה הצלחנו לקבל את המידע.
הדבר הבא שאנחנו צריכים זה להגדיר איזשהו לינק אליו אנחנו רוצים לגלוש, הלינק זה בדיוק הלינק הזה שראינו כאן בדפדפן, אז בואו ניקח, נעתיק אותו, ונטורול C, ניגש ופשוט נדביק אותו פה, הדבר הבא שאנחנו רוצים זה את המידע לשליחה, ראינו בעבר שהכנו לשלוח את המידע כאן בקווירי סטרינג,
כאשר אנחנו שולחים מידע בפוסט, אנחנו לא שולחים את המידע בקוורי סטרינג, אם היינו שולחים את המידע בגט, אז לדוגמה היינו יכולים להגיד שהנאים שווה למה שהתקבל במכרוזת נאים, ואמפרסנט אימייל שווה למה שהתקבל במכרוזת אימייל, במכרוזת אימייל התכוונתי, וכדומה, וכל זה היה בית.
בהמשך של ה-URL, זה שיטה שאנחנו שולחים כאשר אנחנו בגט, אם אנחנו בפוסט אנחנו לא שולחים את המידע בצורה כזאת, ולכן