#arrays #json #shell #curl
#массивы #json #оболочка #завиток
Вопрос:
Я пытаюсь опубликовать следующий объект JSON вместе с данными изображения, используя curl:
{
"score_id": "153A6D67",
"inputs": [{
"type": "hits",
"value": "4"
},{
"type": "miss",
"value": "3"
}]
}
Лучшее, чего я добился до сих пор, — это:
curl --request POST "https://my-server/post-url"
--header 'Accept: application/json'
--form "score_id=153A6D67"
--form 'inputs[]={"type":"hits","value":"4"}; type=application/json'
--form 'inputs[]={"type":"miss","value":"3"}; type=application/json'
--form "uploaded_image=@$IMAGE" # <<< IMPORTANT! this is an image!
Серверная реализация, к которой я пытаюсь подключиться, не распознает объекты, отправленные с этим атрибутом inputs
.
Есть какие-нибудь идеи, что я делаю не так?
Большое вам спасибо за любое направление.
Ответ №1:
Вы можете попробовать это
curl --location --request POST 'https://my-server/post-url'
--header 'Content-Type: application/json'
--data-raw '{
"score_id": "153A6D67",
"inputs": [{
"type": "hits",
"value": "4"
},{
"type": "miss",
"value": "3"
}]
}'
Комментарии:
1. Спасибо вам за ваш ответ, но это не позволит использовать форму, состоящую из нескольких частей! Смотрите мою последнюю строку: —форма «uploaded_image=@$IMAGE»
2. Передать строку изображения в формате в кодировке base64
Ответ №2:
Вот как я заставил это работать:
curl --request POST "https://my-server/post-url"
--header 'Accept: application/json'
--form "score_id=153A6D67"
--form 'inputs[0][type]=hits'
--form 'inputs[0][value]=4'
--form 'inputs[1][type]=miss'
--form 'inputs[1][value]=3'
--form "uploaded_image=@$IMAGE"