Подтвердить что ты не робот

Как получить завиток для вывода только тела ответа HTTP (json) и других заголовков и т.д.

Я использую curl в bash script для получения ответа службы, как показано ниже,

response=$(curl -isb -H "Accept: application/json" "http://host:8080/some/resource")

Ответ службы имеет тип json, и в браузере я мог бы отлично реагировать.
Однако в случае зависания есть другие нежелательные вещи (например, set-cookie, заголовок длины контента в этом случае), а иногда и фактический ответ съедается.

Вот результат echo $response >

 Set-Cookie: rack.session=BAh7CEkiD3Nlc3Npb25faWQGOgZFVEkiRWJlY2JiOTE2M2Q1ZWI4NThjMDdi%0AYjRiOWRjMGMxMGEwYTBkMjE3NmJhZDVjYzY4YjY4ZTlmMTE2ZGVkYWE3MTMG%0AOwBGS
SIJY3NyZgY7AEZJIiVhZmQ2MmUyZGMxMzFmOGEwMjg3NDlhNWM3YmVm%0AN2FjNwY7AEZJIg10cmFja2luZwY7AEZ7B0kiFEhUVFBfVVNFUl9BR0VOVAY7%0AAFRJIi00MTc0OGM2MWNkMzljZTYxNzY3ZjU0
Y2I5OTdiYWRkN2MyNTBkYmU4%0ABjsARkkiGUhUVFBfQUNDRVBUX0xBTkdVQUdFBjsAVEkiLWRhMzlhM2VlNWU2%0AYjRiMGQzMjU1YmZlZjk1NjAxODkwYWZkODA3MDkGOwBG%0A--ee97a62095e7d42129
 tontent-Length: 354c8; path=/; HttpOnly

Это нарушает логику синтаксического анализа ответа.
Я видел, как это случалось с перерывами, что странно.

Есть ли способ получить "только" ответ json от вывода curl?
Я просмотрел документацию по скручиванию, но не видел ничего, или я мог бы пропустить это.
Цените любую помощь! спасибо

4b9b3361

Ответ 1

Вы указываете опцию -i:

-i, --include

(HTTP) Включить HTTP-заголовок в выходной файл. HTTP-заголовок включает такие вещи, как имя-сервера, дату документа, HTTP-версию и многое другое...

Просто удалите эту опцию из командной строки:

response=$(curl -sb -H "Accept: application/json" "http://host:8080/some/resource")

Ответ 2

#!/bin/bash

req=$(curl -s -X GET http://host:8080/some/resource -H "Accept: application/json") 2>&1
echo "${req}"