【发布时间】:2013-09-07 20:18:33
【问题描述】:
我可以通过curl执行以下命令成功创建地点:
$ curl -vX POST https://server/api/v1/places.json -d "
auth_token=B8dsbz4HExMskqUa6Qhn& \
place[name]=Fuelstation Central& \
place[city]=Grossbeeren& \
place[address]=Buschweg 1& \
place[latitude]=52.3601& \
place[longitude]=13.3332& \
place[washing]=true& \
place[founded_at_year]=2000& \
place[products][]=diesel& \
place[products][]=benzin \
"
服务器返回HTTP/1.1 201 Created。
现在我想将有效负载存储在一个 JSON 文件中,如下所示:
// testplace.json
{
"auth_token" : "B8dsbz4HExMskqUa6Qhn",
"name" : "Fuelstation Central",
"city" : "Grossbeeren",
"address" : "Buschweg 1",
"latitude" : 52.3601,
"longitude" : 13.3332,
"washing" : true,
"founded_at_year" : 2000,
"products" : ["diesel","benzin"]
}
所以我修改要执行的命令是这样的:
$ curl -vX POST http://server/api/v1/places.json -d @testplace.json
返回HTTP/1.1 401 Unauthorized 失败。为什么?
【问题讨论】:
-
另外请记住,如果您要上传二进制文件,则应使用
--data-binary。 -
对于引用此问题以回答“我如何指定包含 JSON 的文件”的任何人,请注意它带有问题中给出的
@符号,例如$ curl -vX POST http://server/api/v1/places.json -d @testplace.json。这假设您正在从包含 testplace.json 的目录运行 curl - 否则使用例如@/some/directory/some.json