Menu
Coddy logo textTech

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 danych zakodowanych jako formularz. Dwie rzeczy muszą się zmienić, a zapomnienie o tej drugiej to najczęstszy błąd w 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 analizować JSON jako pary key=value i odrzuca go, zwykle z kodem 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.

Pamiętaj też o cudzysłowach. 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