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/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 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.
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