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/usersPo 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.
Wyzwanie
EkspertWyślij prawdziwy JSON i udowodnij, że został poprawnie oznaczony.
- Uruchom nasłuchiwanie przechwytujące na porcie 9125
- Wyślij metodą POST treść
{"name":"ada"}na adres/users, deklarując, że jest to JSON - Wyświetl wiersz Content-Type z pliku
req.txt
Oczekiwany wynik:
Content-Type: application/jsonSpróbuj swoich 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
4Czy jest osiągalny?
ICMP i pingOdczytywanie wyników pingGdy ping kłamieOdmowa połączenia lub przekroczenie limitu czasuPodsumowanie: osiągalność7Wysyłanie danych
POST z -dCo tak naprawdę wysyła -dKodowanie formularzaWysyłanie JSONPUT i DELETEPodsumowanie: zapisywanie danych3Porty i gniazda
Czym jest portDobrze znane portyLocalhostNasłuchiwanie a łączeniePodsumowanie: porty6curl od podstaw do zaawansowania
Wyświetlanie nagłówkówZapisywanie odpowiedziWłasne nagłówkiStatus i czasKody zakończenia curlPodsumowanie: flagi curl9Uwierzytelnianie i debugowanie
Klucze API i BearerUser AgentLimity czasu i ponowieniaAnaliza błęduPodsumowanie: debugowaniePoćwicz samodzielnie: Edytor online Terminal