я могу успешно создать место через curl
, выполнив следующую команду:Как передать полезную нагрузку через файл JSON для завивки?
$ 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
. Зачем?
Я пытался использовать 'cat file.json' после' -d' и имел проблемы с ним, пока не узнал из этого ответа, что могу использовать '@ file.json'. Спасибо :) – shadi
@mata Можете ли вы посмотреть на вопрос [http://stackoverflow.com/questions/42021113/how-to-use-curl-to-access-the-github-graphql-api] –
, обратите внимание, что если вам нужно несколько заголовков, вам нужно несколько раз указывать '-H' /' --header', по крайней мере, при тестировании в bash на Ubuntu. –