it-swarm.asia

Göndermek POST Curl ile Dosyada Belirtilen Veri İsteği

Komut satırından Curl aracılığıyla POST isteği yapmam gerekiyor. Bu istek için veriler bir dosyada bulunur. PUT aracılığıyla bunun --upload-file seçeneğiyle yapılabileceğini biliyorum.

curl Host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
160
user253202

--data-binary argümanını arıyorsunuz:

curl -i -X POST Host:port/post-file \
  -H "Content-Type: text/xml" \
  --data-binary "@path/to/file"

Yukarıdaki örnekte, -i neler olduğunu görebilmeniz için tüm başlıkları yazdırır ve -X POST bunun bir yazı olduğunu açıkça belirtir. Bunların her ikisi de teldeki davranışı değiştirmeden güvenle yok sayılabilir. Dosya yolundan önce bir @ sembolü gelmelidir, bu yüzden curl bir dosyadan okumayı bilir.

254
Richard J

Komut satırından Curl aracılığıyla POST isteği yapmam gerekiyor. Bu istek için veriler bir dosyada bulunur ...

Tek yapmanız gereken --data argümanının @ ile başlamasıdır:

curl -H "Content-Type: text/xml" --data "@path_of_file" Host:port/post-file -path

Örneğin, stuff.xml adında bir dosyadaki veriler varsa, aşağıdaki gibi bir şey yaparsınız:

curl -H "Content-Type: text/xml" --data "@stuff.xml" Host:port/post-file-path

stuff.xml dosya adı, dosyanın görece veya tam yolu ile değiştirilebilir: @../xml/stuff.xml, @/var/tmp/stuff.xml, ...

20
Gray

Bir parametre adı belirtilmesi gereken dosyayı yüklemek için form verilerini kullanıyorsanız, şunları kullanabilirsiniz:

curl -X POST -i -F [email protected] Host:port/xxx

9
Lucas Liu

Yanıtların çoğu burada mükemmel, ancak buraya özel sorunum için geldiğimde POST yöntemini kullanarak ikili dosya (XLSX forma sayfası) yüklemem gerekiyor, _ (bir şey) eksiksadece yüklediğiniz dosya değil, benim dosyamda olduğu gibi daha fazla form verisi elementi, dosyaya yorum veya dosyaya vb. Bu nedenle, başkalarına yardım edebilmesi için kullanım davam olduğu için buraya eklemek istiyorum. 

curl -POST -F comment=mycomment -F file_type=XLSX -F [email protected]/your/path/to/file.XLSX http://yourhost.example.com/api/example_url
1
Red Boy