kzen.dev
  • Spørsmål
  • Tagger
  • Brukere
Meldinger
Belønninger
Registrering
Når du har registrert deg, vil du bli varslet om svar og kommentarer til spørsmålene dine.
Logg inn
Hvis du allerede har en konto, kan du logge inn for å sjekke nye varsler.
Det vil være belønninger for spørsmål, svar og kommentarer.
Mer
Kilde
Rediger
 kamaci
kamaci
Spørsmål

Hvordan sender jeg JSON-data med Curl fra en terminal/kommandolinje til Test Spring REST?

Jeg bruker Ubuntu og har installert cURL på den. Jeg vil teste Spring REST-applikasjonen min med cURL. Jeg skrev POST-koden min på Java-siden. Imidlertid vil jeg teste den med cURL. Jeg prøver å legge ut en JSON-data. Eksempel på data er slik:

{"value":"30","type":"Tip 3","targetModule":"Target 3","configurationGroup":null,"name":"Configuration Deneme 3","description":null,"identity":"Configuration Deneme 3","version":0,"systemId":3,"active":true}

Jeg bruker denne kommandoen:

curl -i \
    -H "Accept: application/json" \
    -H "X-HTTP-Method-Override: PUT" \
    -X POST -d "value":"30","type":"Tip 3","targetModule":"Target 3","configurationGroup":null,"name":"Configuration Deneme 3","description":null,"identity":"Configuration Deneme 3","version":0,"systemId":3,"active":true \
    http://localhost:8080/xx/xxx/xxxx

Den returnerer denne feilen:

HTTP/1.1 415 Unsupported Media Type
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Length: 1051
Date: Wed, 24 Aug 2011 08:50:17 GMT

Feilbeskrivelsen er denne:

The server refused this request because the request entity is in a format not supported by the requested resource for the requested method (). *Tjeneren avviste denne forespørselen fordi forespørselen er i et format som ikke støttes av den forespurte ressursen for den forespurte metoden ().

Tomcat-logg: "POST /ui/webapp/conf/clear HTTP/1.1" 415 1051

Hva er riktig format for cURL-kommandoen?

Dette er Java-sidens PUT-kode (jeg har testet GET og DELETE, og de fungerer):

@RequestMapping(method = RequestMethod.PUT)
public Configuration updateConfiguration(HttpServletResponse response, @RequestBody Configuration configuration) { //consider @Valid tag
    configuration.setName("PUT worked");
    //todo If error occurs response.sendError(HttpServletResponse.SC_NOT_FOUND);
    return configuration;
}
2583 2011-08-24T08:51:11+00:00 3
 YanDatsiuk
YanDatsiuk
Redigerte spørsmål 24. juni 2019 в 1:16
cURL - Wikipedia
en.wikipedia.org
Programmering
curl
rest
http-headers
json
spring-mvc
Dette spørsmålet har 1 svar på engelsk, for å lese dem logge inn på kontoen din.
Løsning / svar
Sean  Patrick Floyd
Sean Patrick Floyd
24. august 2011 в 9:12
2011-08-24T09:12:29+00:00
Mer
Kilde
Rediger
#13240199

Du må sette innholdstypen til application/json. Men -d sender Content-Type application/x-www-form-urlencoded, som ikke aksepteres på Spring's side.

Når jeg ser på curl man page, tror jeg du kan bruke -H:

-H "Content-Type: application/json"

Fullstendig eksempel:

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"username":"xyz","password":"xyz"}' \
  http://localhost:3000/api/login

(-H er en forkortelse for --header, -d for --data)

Merk at -request POST er valgfritt hvis du bruker -d, ettersom -d-flagget innebærer en POST-forespørsel.


På Windows er det litt annerledes. Se kommentartråden.

Clemens Tolboom
Clemens Tolboom
Redigert svar 3. mai 2018 в 9:43
4017
0
 Typisch
Typisch
24. august 2011 в 10:04
2011-08-24T10:04:24+00:00
Mer
Kilde
Rediger
#13240218

Prøv å legge dataene dine i en fil, for eksempel body.json, og bruk deretter

curl -H "Content-Type: application/json" --data @body.json http://localhost:8080/ui/webapp/conf
513
0
Steffen Roller
Steffen Roller
15. november 2011 в 3:45
2011-11-15T15:45:09+00:00
Mer
Kilde
Rediger
#13240250

Jeg har nettopp støtt på det samme problemet. Jeg kan løse det ved å spesifisere

-H "Content-Type: application/json; charset=UTF-8"
34
0
Legg til spørsmål
Kategorier
Alle
Teknologi
Kultur / Fritid
Liv / Kunst
Vitenskap
Profesjonell
Virksomhet
Brukere
Alle
New
Popular
1
ALEX EPRST
Registered 13 timer siden
2
Daniel Gogov
Registered 1 uke siden
3
工藤 芳則
Registered 2 uker siden
4
Ирина Беляева
Registered 2 uker siden
5
Darya Arsenyeva
Registered 3 uker siden
BG
DE
EL
ES
FI
FR
HU
ID
IT
JA
LT
NL
NO
PT
RO
RU
SK
SL
TR
ZH
© kzen.dev 2023
Kilde
stackoverflow.com
under lisens cc by-sa 3.0 med attribusjon