我使用cURL来测试使用Django REST框架的Django应用程序(Apache服务器)的REST API。我遇到的问题是,上传URL需要一个尾斜杠,但使用以下cURL方法不会附加一个尾斜杠:
curl -i -b cookie.txt -X PUT -T "somefile.txt" http://myserver/api/upload/
来自cURL man I know:
如果指定的URL中没有文件部分,Curl将附加本地文件名。注意,你必须在最后一个目录后面加上一个/来向Curl证明没有文件名,否则Curl会认为你的最后一个目录名是要使用的远程文件名。
但是,cURL不会在自动附加的文件名后面加上斜杠。因此,我找不到让cURL将URL改为http://myserver/api/upload/somefile.txt/
而不是http://myserver/api/upload/somefile.txt
的方法
任何建议吗?
我从cURL用户邮件列表(curl-users@cool.haxx.se)得到了一个答案:
在执行HTTP PUT操作时,您应该确定要用请求创建的资源。我想说,一个API如果要求它有一个尾斜杠,那就有点不正常了。
但是不,curl不能以任何我能想到的简单方式向这样的URL发送PUT。Libcurl本身当然可以,所以一个简单的解决方案可能是用Libcurl绑定的语言编写一个简单的程序。