İçerik türü üstbilgiyi kıvrılma ile göndermenin doğru yolu nedir?


1

Mac 10.9.5'i bash shell ile kullanıyorum. Curl üzerinden bir istek göndermeye çalışıyorum, ancak içerik türü başlığını ayarlamaya çalışırken hata alıyorum Altında denerim

davea$ curl -v -o -H "Content-Type: application/json" -X POST -d '{"username”:”username”,”password”:”password”}’ http://localhost:8080/myproject/login

fakat curl, “curl: (6) Ana bilgisayar 'Content-Type' hatası çözemedi” hatasını geri veriyor. Tam çıktı aşağıdadır:

* getaddrinfo(3) failed for Content-Type:80
* Couldn't resolve host 'Content-Type'
* Closing connection 0
curl: (6) Couldn't resolve host 'Content-Type'
*   Trying ::1...
* Connected to localhost (::1) port 8080 (#1)
> POST /myproject/login HTTP/1.1
> User-Agent: curl/7.40.0
> Host: localhost:8080
> Accept: */*
> Content-Length: 40
> Content-Type: application/x-www-form-urlencoded
> 
* upload completely sent off: 40 out of 40 bytes
< HTTP/1.1 302 Found
< Server: Apache-Coyote/1.1
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
< Pragma: no-cache
< Expires: 0
< X-Frame-Options: DENY
< Set-Cookie: JSESSIONID=B980765C84EA5759F743D1AAE8E189D0; Path=/myproject/; HttpOnly
< Location: http://localhost:8080/myproject/login?error
< Content-Length: 0
< Date: Mon, 06 Jul 2015 16:03:37 GMT
< 
* Connection #1 to host localhost left intact

İçerik türü üstbilgisini kıvrılma ile göndermenin doğru yolu nedir?

Yanıtlar:


2

İçerik türü üstbilgisini, üzerinden göndermenin doğru yolu nedir? curl?

Kullanmak -H parametre, belirttiğiniz gibi:

-H "Content-Type: application/json"

Öte yandan, sen var Ayrıca belirtilen -o (dosyaya çıktı) seçeneği, bir dosya belirtmeden:

HTTP POST veya PUT istekleri için bir ilerleme ölçer istiyorsanız, kabuk çıkışını (& gt;), -o [dosya] veya benzerini kullanarak yanıt çıktısını bir dosyaya yönlendirmeniz gerekir.

(dan man curl )

Böylece komut olur:

$ curl -o output.txt -H "Content-Type: application/json" -X POST -d '{"username":"username","password":"password"}' http://localhost:8080/myproject/login

(NB Ben de sorunuzu yerine getirdikleri için yukarıdaki komuttaki akıllı alıntıları değiştirdim)

Başlık ve çıktı göndermeli output.txt ) belirttiğiniz gibi. Ayrıca bırakabilirsiniz -o output.txt Buna gerek duymuyorsanız parametre. rağmen man curl Sayfa, sınama sırasında belirtmiyor gibi görünüyor -v karıştırılamaz -o.


Merhaba, artık bu hatayı alamıyorum, ancak "output.txt" dosyasında hiçbir şey yok.
Dave

@Dave Görünüşe göre -v ve -o birlikte kullanılamaz; çıktıyı dosya kullanımını istiyorsanız -o; Eğer istersen -v ayrıntılı çıktı dosya yönlendirmesini kullan ( > output.txt )
bertieb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.