2017-03-27 76 views
15

Zanim opublikujesz to jako duplikat; Próbowałem wielu sugestii, które znalazłem w SO.Jak publikować dane surowego ciała za pomocą zwijania?

Do tej pory używałem listonosza do publikowania danych w serwisie WWW Java. Że działa świetnie, co następuje:

enter image description here

Teraz chcę zrobić to samo za pomocą curl, więc próbowałem go przy użyciu następujących sposobów:

$ curl -X POST --data "this is raw data" http://78.41.xx.xx:7778/ 
$ curl -X POST --data-binary "this is raw data" http://78.41.xx.xx:7778/ 
$ curl -X POST --data "@/home/kramer65/afile.txt" http://78.41.xx.xx:7778/ 
$ curl -X POST --data-binary "@/home/kramer65/afile.txt" http://78.41.xx.xx:7778/ 

Niestety, wszystkie te wykazują pusty surowy ciało po stronie odbiorczej.

Czy ktoś wie, co robię źle tutaj? Czym różni się moja prośba o curl od mojej prośby listonosza? Wszystkie wskazówki są mile widziane!

Odpowiedz

16

--data ustawi typ zawartości na application/x-www-form-urlencoded. Twój Listonosz żądanie korzysta Content-Type: text/plain domyślnie przy użyciu raw wejście:

curl -X POST -H "Content-Type: text/plain" --data "this is raw data" http://78.41.xx.xx:7778/ 

pamiętać, że jeśli chcesz oglądać pełną żądania wysłanego przez Postman, można włączyć debugowanie dla wypełnieniem aplikacji. Dla wszystkich instrukcji sprawdź this link. Następnie można sprawdzić aplikację (kliknij prawym przyciskiem w Postman) i zobaczyć wszystkie żądania wysyłane od listonosza w zakładce network:

enter image description here

+0

Należy zauważyć jednak, że ta część ciała jest wysyłany * dokładnie * taka sama. To po prostu zmienia nagłówek. –