2017-10-26 1 views
0

Ich habe eine Server-API, die ich gegen das Format entwickelt habe, das von Fiddler verwendet wird, um HTTP-Posts von Dateien zu machen, was ein multipart/form-data post ist. Ich versuche, etwas Ähnliches zu machen (damit ich aufhören kann, Fiddler zum Testen zu verwenden und stattdessen ein separates Programm aufrufen muss, um programmgesteuert zu curlen).curl für multipart/form-data mit einem Dateiupload

Hier ist, wie es in Fiddler eingerichtet ist, was ich replizieren muss. Die Datei hochgeladen werden MyFile.html:

---------------------------acebdf13572468 
Content-Disposition: form-data; name="fieldNameHere"; filename="myfile.html" 
Content-Type: text/html 

<@INCLUDE *C:\myfiles\myfile.html*@> 
---------------------------acebdf13572468-- 

Also, was ich brauche, ist für Locke etwas ähnliches zu produzieren: insbesondere der Name = Teil, durch den Dateiinhalt an der Unterseite dieses Teils folgt. Ich habe schon versucht, diese mit:

curl -F "fieldNameHere=myfile.html" http://myapi.com/ 

Als ich tun, dass es wenn meine Datei vollständig zu ignorieren scheint. Hier ist die ausführliche Ausgabe, wenn ich hinzufügen -v:

POST/HTTP/1.1 
User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 
Host: perl-h4.factset.io 
Accept: */* 
Content-Length: 166 
Expect: 100-continue 
Content-Type: multipart/form-data; boundary=----------------------------981301fdaeb3 

Es gibt keinen Dateiinhalt überhaupt (es ist eine große HTML-Datei). Ich denke also, dass etwas Grundlegendes hier fehlt. Alle Hinweise wären sehr willkommen.

Auch ich habe andere Stackoverflow geprüft Fragen wie diese: What is the right way to POST multipart/form-data using curl?

Aber sie sagen, im Grunde so etwas wie zu tun, was ich hier tue. Also vielleicht ist das Problem nicht meine Syntax, aber aus irgendeinem anderen Grund möchte ich die Datei nicht lesen.

Antwort

2
curl -X POST -F [email protected] http://myapi.com/ 

oder

-X POST durch -F impliziert (pro Kommentar), sind Zitate optional

curl -F "[email protected]" http://myapi.com/ 
+0

aber keine Bonuspunkte mit dem überflüssigen '-X Post' Derzeit gibt .. . =) –

+0

Oh wow, das Problem ist nur, dass ich ein @ -Zeichen vermisst habe. Erstaunlich ... danke. Ich denke, das sagt curl, dass dies der Name einer tatsächlichen Datei ist? – Stephen

+1

Ja, ziemlich. – Scriptonomy