Сериализация полей в виде JSON-объекта (по умолчанию) или с кодировкой формы (—form, -f).
Поля файла формы field@/dir/file | Доступно только с —form, -f. Например, screenshot@~/Pictures/img.png. Наличие поля файла приводит к запросу multipart/form-data. |
---|---|
Поля файла из файла field=@file.txt | считывание содержимого из файла в качестве значения |
Необработанные поля JSON field:=json, field:=@file.json | Полезно при отправке JSON и когда нужно, чтобы одно или несколько полей были логическими значениями, числами, вложенными объектами или массивами, например, meals:='["ham","spam"]' или pies:=[1,2,3] (обратите внимание на кавычки). |
Можно использовать ** для экранирования символов, которые не должны использоваться в качестве разделителей (или их частей). Например, foo==bar станет парой ключ/значение данных (foo= и bar) вместо параметра URL.
Также можно заключать значения в кавычки, например, foo="bar baz".
JSON — это язык общения современных веб-сервисов, а также неявный тип контента, который по умолчанию использует:
Если ваша команда включает некоторые элементы данных, они сериализуются как объект JSON по умолчанию. bat также автоматически устанавливает следующие заголовки, оба из которых можно перезаписать:
Тип содержимого | application/json |
---|---|
Accept | application/json |
Вы можете использовать --json=true, -j=true, чтобы явно установить Accept в application/json, независимо от того, отправляете ли вы данные (это ярлык для установки заголовка через обычную нотацию заголовка — bat url Accept:application/json).
Простой пример:
$ bat PUT example.org name=John email=john@example.org
PUT / HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
Content-Type: application/json
Host: example.org
{
"name": "John",
"email": "john@example.org"
}
Нестроковые поля используют разделитель :=, который позволяет встраивать необработанный JSON в результирующий объект. Текстовые файлы и файлы JSON также можно встроить в поля с помощью =@ и :=@:
$ bat PUT api.example.com/person/1 \
name=John \
age:=29 married:=false hobbies:='["http", "pies"]' \ # Необработанный JSON
description=@about-john.txt \ # Встраивание текстового файла
bookmarks:=@bookmarks.json # Встраивание файла JSON
PUT /person/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: api.example.com
{
"age": 29,
"hobbies": [
"http",
"pies"
],
"description": "John is a nice guy who likes pies.",
"married": false,
"name": "John",
"bookmarks": {
"HTTPie": "http://httpie.org",
}
}
Отправьте данные JSON, хранящиеся в файле (см. перенаправленный ввод для дополнительных примеров):
$ bat POST api.example.com/person/1 < person.json
Отправка форм очень похожа на отправку запросов JSON. Часто единственное отличие заключается в добавлении опции -form=true, -f, которая гарантирует, что поля данных сериализованы правильно, а Content-Type установлен на application/x-www-form-urlencoded; charset=utf-8.
Через файл конфигурации можно сделать данные формы неявным типом контента вместо JSON.
$ bat -f=true POST api.example.org/person/1 name='John Smith' \
email=john@example.org
POST /person/1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=utf-8
name=John+Smith&email=john%40example.org
Если присутствует одно или несколько полей файла, сериализация и тип содержимого — multipart/form-data:
$ bat -f=true POST example.com/jobs name='John Smith' cv@~/Documents/cv.pdf
Приведённый выше запрос аналогичен отправке следующей HTML-формы:
<form enctype="multipart/form-data" method="post" action="http://example.com/jobs">
<input type="text" name="name" />
<input type="file" name="cv" />
</form>
Обратите внимание, что @ используется для имитации поля загрузки файла.
Чтобы установить пользовательские заголовки, вы можете использовать нотацию Заголовок:Значение:
$ bat example.org User-Agent:Bacon/1.0 'Cookie:valued-visitor=yes;foo=bar' \
X-Foo:Bar Referer:http://beego.me/
GET / HTTP/1.1
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )