25
想知道如何使用-d選項發送一個curl命令,用它的路徑指定文件而不是當前目錄中的文件。以絕對路徑或相對路徑發送curl請求中的json文件
這是當我嘗試使用本地目錄中的json文件測試我的應用程序時得到的結果。無論是應用程序和我很高興:
curl -XPOST -H 'Content-Type:application/json' -d @all_fields.json http://testcomp.lab.net:8080/stats -v -s
* About to connect() to testcomp.lab.net port 8080
* Trying 10.93.2.197... connected
* Connected to testcomp.lab.net (10.93.2.197) port 8080
> POST /stats HTTP/1.1
> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Host: testcomp.lab.net:8080
> Accept: */*
> Content-Type:application/json
> Content-Length: 2882
> Expect: 100-continue
>
< HTTP/1.1 100 Continue
HTTP/1.1 200 OK
< Content-Length: 0
* Connection #0 to host testcomp.lab.net left intact
* Closing connection #0
這是我收到的時候我指定一個JSON文件,該文件在其他目錄
curl -XPOST -H 'Content-Type:application/json' -d @json/all_fields.json http://testcomp.lab.net:8080/stats -v -s
"Invalid json for Java type interface java.util.List"
Warning: Couldn't read data from file "json/all_fields.json", this makes an
Warning: empty POST.
<snip snip>
<snip snip>
< HTTP/1.1 400 Bad Request
< Content-Type: application/json
< Transfer-Encoding: chunked
* Connection #0 to host testcomp.lab.net left intact
* Closing connection #0
我沒有看到該男子頁何事curl指定作爲數據傳入的文件的目錄。我不幸地僅限於本地目錄中的文件,或者是否有一種特殊的方式來指定不同目錄中的文件?在此先感謝您的幫助。
感謝您的回覆和回答。把相對或絕對路徑不起作用,路徑確實存在。當您運行cmd時,您使用的是什麼版本的捲曲? mine curl 7.24.0(x86_64-apple-darwin12.0)libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5。我幾乎在機智的最後試圖弄清楚什麼是B/C你上面寫的是我做了什麼,但它不工作。 – Classified
curl 7.21.4(universal-apple-darwin11.0)libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5 – Perception
這可能是由curl版本的差異造成的嗎? json文件的路徑是有效的。但是,對於我來說,當我在curl cmd中使用路徑時,它不起作用。如果我運行curl cmd並且該文件位於本地目錄中,那麼它可以工作。 – Classified