This shows you the differences between two versions of the page.
pc:laboratoare:10 [2022/05/09 19:35] vlad_andrei.badoiu [Exerciții] |
pc:laboratoare:10 [2022/05/15 10:55] (current) vlad_andrei.badoiu [Exerciții] |
||
---|---|---|---|
Line 112: | Line 112: | ||
Cookie: c_user=XXXXXXXXXX; presence=XXXXXXX\r\n | Cookie: c_user=XXXXXXXXXX; presence=XXXXXXX\r\n | ||
\r\n | \r\n | ||
+ | </code> | ||
+ | |||
+ | Exemplu foarte simplu de POST. | ||
+ | <code HTTP> | ||
+ | POST /test HTTP/1.1 | ||
+ | Host: foo.example | ||
+ | Content-Type: application/x-www-form-urlencoded | ||
+ | Content-Length: 27 | ||
+ | |||
+ | field1=value1&field2=value2 | ||
</code> | </code> | ||
Line 188: | Line 198: | ||
Pornind de la codul disponibil [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/bogdan_costel.mocanu-master-patch-08393/lab10|aici]], aveți de implementat următoarele cerințe: | Pornind de la codul disponibil [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/bogdan_costel.mocanu-master-patch-08393/lab10|aici]], aveți de implementat următoarele cerințe: | ||
- | - Implementati folosind instrucțiunile din îndrumarul de laborator o cerere dummy de tip GET pentru adresa __///api/v1/dummy//__ de la serverul principal. | + | 1. Implementati folosind instrucțiunile din îndrumarul de laborator o cerere dummy de tip GET pentru adresa __///api/v1/dummy//__ de la serverul principal. |
<note> | <note> | ||
Gasiti [[https://www.cloudshark.org/captures/83390916ab62|aici]] un exemplu de request GET. | Gasiti [[https://www.cloudshark.org/captures/83390916ab62|aici]] un exemplu de request GET. | ||
- | </note> | + | </note> |
- | - Implementati folosind instrucțiunile din îndrumarul de laborator o cerere dummy de tip POST pentru adresa __///api/v1/dummy//__ de la serverul principal cu cu orice conținut pentru date de forma **application/x-www-form-urlencoded**. | + | |
+ | 2. Implementati folosind instrucțiunile din îndrumarul de laborator o cerere dummy de tip POST pentru adresa __///api/v1/dummy//__ de la serverul principal cu cu orice conținut pentru date de forma **application/x-www-form-urlencoded**. | ||
<note> | <note> | ||
- | Gasiti [[https://www.cloudshark.org/captures/74a6deb7aa4e?filter=http.request.method%20%3D%3D%20%22POST%22|aici]] o captura cu mesaje de tip POST | + | Gasiti [[https://www.cloudshark.org/captures/74a6deb7aa4e?filter=http.request.method%20%3D%3D%20%22POST%22|aici]] o captura cu mesaje de tip POST. Mai multe detalii despre POST gasiti [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST|aici]] |
</note> | </note> | ||
- | - Ne propunem implementarea unei mecanims de autentificare. Implementați folosind instrucțiunile din îndrumarul de laborator o cerere de tip POST pentru adresa __///api/v1/auth/login//__ de pe serverul principal folosind **username** //student// si **password** //student//. Similar cu task-ul precedent datele trebuie să fie de forma **application/x-www-form-urlencoded**. | + | |
- | - Folosind cookie-ul obtinut la pasul precedent, care poate fi **hardcodat**, implmentați o cerere de tip GET către adresa __///api/v1/weather/key//__ a serverului principal pentru a obține un cheia de conectare la serverul __//34.241.4.235//__. | + | 3. Ne propunem implementarea unei mecanims de autentificare. Implementați folosind instrucțiunile din îndrumarul de laborator o cerere de tip POST pentru adresa __///api/v1/auth/login//__ de pe serverul principal folosind **username** //student// si **password** //student//. Similar cu task-ul precedent datele trebuie să fie de forma **application/x-www-form-urlencoded**. |
- | - Folosind cheia de sesiune, implmentați o cerere de tip **GET** la serverul //Openweather Map// cu adrese __///data/2.5/weather//__ pentru a obține datele despre vreme. Pentru acest task trebuie specificate coordonatele (lat,long) pentru care se dorește obținerea datelor. | + | |
- | - Cu date obținute la punctul precedent, implementați o cerere de tip **POST** la serverul principal pentru verificarea. Pentru acest task trebuie să țineți cont de faptul că datele servite de serverul //Openweather Map// sunt în format **JSON**. | + | 4. Folosind cookie-ul obtinut la pasul precedent, care poate fi **hardcodat**, implmentați o cerere de tip GET către adresa __///api/v1/weather/key//__ a serverului principal pentru a obține un cheia de conectare la serverul __//34.241.4.235//__. |
- | - Implementați o cerere de tip GET către serverul principal pentru efectuarea delogări (LogOut). | + | |
+ | <note> | ||
+ | Gasiti [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies|aici]] un exemplu de mesaj GET cu cookie]]. | ||
+ | </note> | ||
+ | |||
+ | 5. Folosind cheia de sesiune, implmentați o cerere de tip **GET** la serverul //Openweather Map// cu adrese __///data/2.5/weather//__ pentru a obține datele despre vreme. Pentru acest task trebuie specificate coordonatele (lat,lon) pentru care se dorește obținerea datelor. | ||
+ | |||
+ | 6. Cu date obținute la punctul precedent, implementați o cerere de tip **POST** la serverul principal (34.241.4.235) pentru verificarea. Pentru acest task trebuie să țineți cont de faptul că datele servite de serverul //Openweather Map// sunt în format **JSON**. | ||
+ | |||
+ | 7. Implementați o cerere de tip GET către serverul principal pentru efectuarea delogări (LogOut) la ''/api/v1/auth/logout'' | ||
Line 209: | Line 229: | ||
+ | <note> | ||
+ | O posibila solutie a laboratorului se gaseste [[https://ocw.cs.pub.ro/courses/_media/pc/laboratoare/lab10-sol.zip|aici]] | ||
+ | </note> | ||