使用HTTP PUT方法上载测试文件

时间:2011-02-28 15:27:14

标签: http curl put

我使用HTTP PUT方法编写了一个上传文件的服务。

Web浏览器不支持PUT,因此我需要一种测试方法。它可以很好地用作从浏览器点击它的POST。

更新:这是有效的。我尝试了海报,但它与使用提琴手的东西相同。您必须知道如何构建请求。 curl负责处理这个问题。

curl -X PUT“localhost:8080 / urlstuffhere”-F“file = @ filename”-b“JSESSIONID = cookievalue”

4 个答案:

答案 0 :(得分:110)

在我看来,此类测试的最佳工具是 curl 。它的--upload-file选项通过PUT上传文件,这正是你想要的(它可以做更多的事情,比如修改HTTP头,以备你需要的时候):

curl http://myservice --upload-file file.txt

答案 1 :(得分:7)

curl -X PUT -T "/path/to/file" "http://myputserver.com/puturl.tmp" 

答案 2 :(得分:0)

如果您使用的是 PHP,则可以使用以下代码测试您的 PUT 上传:

#Initiate cURL object
$curl = curl_init();
#Set your URL
curl_setopt($curl, CURLOPT_URL, 'https://local.simbiat.ru');
#Indicate, that you plan to upload a file
curl_setopt($curl, CURLOPT_UPLOAD, true);
#Indicate your protocol
curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
#Set flags for transfer
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
#Disable header (optional)
curl_setopt($curl, CURLOPT_HEADER, false);
#Set HTTP method to PUT
curl_setopt($curl, CURLOPT_PUT, 1);
#Indicate the file you want to upload
curl_setopt($curl, CURLOPT_INFILE, fopen('path_to_file', 'rb'));
#Indicate the size of the file (it does not look like this is mandatory, though)
curl_setopt($curl, CURLOPT_INFILESIZE, filesize('path_to_file'));
#Only use below option on TEST environment if you have a self-signed certificate!!! On production this can cause security issues
#curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
#Execute
curl_exec($curl);

答案 3 :(得分:-1)

对于curl,如何使用-d开关?喜欢:curl -X PUT "localhost:8080/urlstuffhere" -d "@filename"