Menu
CoddyTech

Wysyłanie JSON

Lekcja 35 z 47 w kursie Sieci komputerowe w terminalu w Coddy.

Większość współczesnych API oczekuje JSON-a, a nie kodowania formularzy. Trzeba zmienić dwie rzeczy, a zapomnienie o tej drugiej to najczęstszy błąd w całym tym obszarze.

curl -s -H 'Content-Type: application/json' \
     -d '{"name":"ada"}' http://127.0.0.1:9125/users

Po pierwsze, treść żądania staje się JSON-em. Po drugie, musisz zadeklarować to za pomocą nagłówka Content-Type, ponieważ w przeciwnym razie curl nadal oznaczy treść jako dane formularza. Serwer próbuje wtedy sparsować JSON jako pary key=value i odrzuca go, zwykle zwracając błąd 400.

Jeśli więc API informuje, że Twój JSON jest nieprawidłowy, choć wygląda na całkowicie poprawny, sprawdź nagłówek, zanim sprawdzisz JSON.

Zwróć też uwagę na cudzysłowy. JSON zawiera mnóstwo podwójnych cudzysłowów, więc ujmij całą treść w pojedyncze cudzysłowy, a powłoka jej nie zmieni.

challenge icon

Wyzwanie

Ekspert

Wyślij prawdziwy JSON i udowodnij, że został poprawnie oznaczony.

  1. Uruchom nasłuchiwanie przechwytujące na porcie 9125
  2. Wyślij metodą POST treść {"name":"ada"} na adres /users, deklarując, że jest to JSON
  3. Wyświetl wiersz Content-Type z pliku req.txt

Oczekiwany wynik:

Content-Type: application/json

Spróbuj swoich sił

Terminal
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Sieci komputerowe w terminalu

Poćwicz samodzielnie: Edytor online Terminal