Как заполнять кудир: Заполнение и ведение КУДиР на УСН 6 % в 2021 году — Контур.Бухгалтерия

Содержание

Образец заполнения КУДИР для ИП на УСН

Расшифровывается как книга учета доходов и расходов. Она должна вестись каждым индивидуальным предпринимателем, который использует упрощённую систему налогообложения «доходы» либо «доходы — расходы».

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

Как заполнять кудир для ИП на УСН?

Книга состоит из пяти разделов (готовый шаблон можно скачать в конце статьи). Опишем кратко содержание каждого по очереди:

  • 1. Доходы и расходы. Добавляем приход, в нашем случае это оприходование розничной выручки, которая проходит через онлайн кассу и отправляется в федеральную налоговую службу (ФНС) через ОФД.
  • 2. Расчет расходов на приобретение (сооружение, изготовление) основных средств. Этот раздел заполняется теми ИП, которые используют объект налогообложения «Доходы — Расходы». У нас он пустой.
  • 3. Расчет суммы убытка, уменьшающей налоговую базу по налогу
    . В моём случае этот раздел книги так же остаётся пустым.
  • 4. Расходы, предусмотренные пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации. В этом разделе указываем платежи, которые были сделаны по страховым взносам в ПФР и ОМС. Ведь именно на эту величину был уменьшен основной налог. Напомню, что индивидуальные предприниматели вправе уменьшить налог УСН на полный размер страховых взносов, а если есть наёмные работники, то на 50%.
  • 5. Сумма торгового сбора. Этот раздел также остаётся пустым.

Лично мы не ведем её отдельно, а генерируем из товароучетной программы. В нашем случае это 1С. Так же для этих целей подойдёт сервис Контур Эльба, но он платный. Скорей всего существуют и бесплатные аналоги, но я о них не знаю. Если знаешь, то напиши в комментариях!

Бесплатно можно вести самому на бумаге, ведь у тебя ведется статистика по каждодневным продажам в какой-нибудь тетради или Excel? Осталось только перенести это на бумажный носитель.

Шаблон заполнения можешь загрузить по ссылке ниже.

В конце года книгу лучше всего распечатать и сшить для хранения. Выглядит готовый экземпляр вот так:

Книга учета доходов и расходов при УСН

Соглашение о конфиденциальности

и обработке персональных данных

 

1.Общие положения

 

1.1.Настоящее соглашение о конфиденциальности и обработке персональных данных (далее – Соглашение) принято свободно и своей волей, действует в отношении всей информации, которую ООО «Инсейлс Рус» и/или его аффилированные лица, включая все лица, входящие в одну группу с ООО «Инсейлс Рус» (в том числе ООО «ЕКАМ сервис»), могут получить о Пользователе во время использования им любого из сайтов, сервисов, служб, программ для ЭВМ, продуктов или услуг ООО «Инсейлс Рус» (далее – Сервисы) и в ходе исполнения ООО «Инсейлс Рус» любых соглашений и договоров с Пользователем. Согласие Пользователя с Соглашением, выраженное им в рамках отношений с одним из перечисленных лиц, распространяется на все остальные перечисленные лица.

1.2.Использование Сервисов означает согласие Пользователя с настоящим Соглашением и указанными в нем условиями; в случае несогласия с этими условиями Пользователь должен воздержаться от использования Сервисов.

1.3.Сторонами (далее – «Стороны) настоящего Соглашения являются:

«Инсейлс» – Общество с ограниченной ответственностью «Инсейлс Рус», ОГРН 1117746506514, ИНН 7714843760, КПП  771401001, зарегистрированное по адресу: 125319, г.Москва, ул.Академика Ильюшина, д.4, корп.1, офис 11 (далее — «Инсейлс»), с одной стороны, и

«Пользователь»

либо физическое лицо, обладающее дееспособностью и признаваемое участником гражданских правоотношений в соответствии с законодательством Российской Федерации;

либо юридическое лицо, зарегистрированное в соответствии с законодательством государства, резидентом которого является такое лицо;

либо индивидуальный предприниматель, зарегистрированный в соответствии с законодательством государства, резидентом которого является такое лицо;

которое приняло условия настоящего Соглашения.

1.4.Для целей настоящего Соглашения Стороны определили, что конфиденциальная информация – это сведения любого характера (производственные, технические, экономические, организационные и другие), в том числе о результатах интеллектуальной деятельности, а также сведения о способах осуществления профессиональной деятельности (включая, но не ограничиваясь: информацию о продукции, работах и услугах; сведения о технологиях и научно-исследовательских работах; данные о технических системах и оборудовании, включая элементы программного обеспечения; деловые прогнозы и сведения о предполагаемых покупках; требования и спецификации конкретных партнеров и потенциальных партнеров; информацию, относящуюся к интеллектуальной собственности, а также планы и технологии, относящиеся ко всему перечисленному выше), сообщаемые одной стороной другой стороне в письменной и/или электронной форме, явно обозначенные Стороной как ее конфиденциальная информация.

1.5.Целью настоящего Соглашения является защита конфиденциальной информации, которой Стороны будут обмениваться в ходе переговоров, заключения договоров и исполнения обязательств, а равно любого иного взаимодействия (включая, но не ограничиваясь, консультирование, запрос и предоставление информации, и выполнение иных поручений).

 

2.Обязанности Сторон

 

2.1.Стороны соглашаются сохранять в тайне всю конфиденциальную информацию, полученную одной Стороной от другой Стороны при взаимодействии Сторон, не раскрывать, не разглашать, не обнародовать или иным способом не предоставлять такую информацию какой-либо третьей стороне без предварительного письменного разрешения другой Стороны, за исключением случаев, указанных в действующем законодательстве, когда предоставление такой информации является обязанностью Сторон.

2.2.Каждая из Сторон предпримет все необходимые меры для защиты конфиденциальной информации как минимум с применением тех же мер, которые Сторона применяет для защиты собственной конфиденциальной информации. Доступ к конфиденциальной информации предоставляется только тем сотрудникам каждой из Сторон, которым он обоснованно необходим для выполнения служебных обязанностей по исполнению настоящего Соглашения.

2.3.Обязательство по сохранению в тайне конфиденциальной информации действительно в пределах срока действия настоящего Соглашения, лицензионного договора на программы для ЭВМ от 01. 12.2016г., договора присоединения к лицензионному договору на программы для ЭВМ, агентских и иных договоров и в течение пяти лет после прекращения их действия, если Сторонами отдельно не будет оговорено иное.

2.4.Не будут считаться нарушением настоящего Соглашения следующие случаи:

(а)если предоставленная информация стала общедоступной без нарушения обязательств одной из Сторон; 

(б)если предоставленная информация стала известна Стороне в результате ее собственных исследований, систематических наблюдений или иной деятельности, осуществленной без использования конфиденциальной информации, полученной от другой Стороны;

(в)если предоставленная информация правомерно получена от третьей стороны без обязательства о сохранении ее в тайне до ее предоставления одной из Сторон; 

(г)если информация предоставлена по письменному запросу органа государственной власти, иного государственного органа,  или органа местного самоуправления в целях выполнения их функций и ее раскрытие этим органам обязательно для Стороны.

При этом Сторона должна незамедлительно известить другую Сторону о поступившем запросе;

(д)если информация предоставлена третьему лицу с согласия той Стороны, информация о которой передается.

2.5.Инсейлс не проверяет достоверность информации, предоставляемой Пользователем, и не имеет возможности оценивать его дееспособность.

2.6.Информация, которую Пользователь предоставляет Инсейлс при регистрации в Сервисах, не является персональными данными, как они определены в Федеральном законе РФ №152-ФЗ от 27.07.2006г. «О персональных данных».

2.7.Инсейлс имеет право вносить изменения в настоящее Соглашение. При внесении изменений в актуальной редакции указывается дата последнего обновления. Новая редакция Соглашения вступает в силу с момента ее размещения, если иное не предусмотрено новой редакцией Соглашения.

2.8.Принимая данное Соглашение Пользователь осознает и соглашается с тем, что Инсейлс может отправлять Пользователю персонализированные сообщения и информацию (включая, но не ограничиваясь) для повышения качества Сервисов, для разработки новых продуктов, для создания и отправки Пользователю персональных предложений, для информирования Пользователя об изменениях в Тарифных планах и обновлениях, для направления Пользователю маркетинговых материалов по тематике Сервисов, для защиты Сервисов и Пользователей и в других целях.

Пользователь имеет право отказаться от получения вышеуказанной информации, сообщив об этом письменно на адрес электронной почты Инсейлс — [email protected]

2.9.Принимая данное Соглашение, Пользователь осознает и соглашается с тем, что Сервисами Инсейлс для обеспечения работоспособности Сервисов в целом или их отдельных функций в частности могут использоваться файлы cookie, счетчики, иные технологии и Пользователь не имеет претензий к Инсейлс в связи с этим.

2.10.Пользователь осознает, что оборудование и программное обеспечение, используемые им для посещения сайтов в сети интернет могут обладать функцией запрещения операций с файлами cookie (для любых сайтов или для определенных сайтов), а также удаления ранее полученных файлов cookie.

Инсейлс вправе установить, что предоставление определенного Сервиса возможно лишь при условии, что прием и получение файлов cookie разрешены Пользователем.

2.11.Пользователь самостоятельно несет ответственность за безопасность выбранных им средств для доступа к учетной записи, а также самостоятельно обеспечивает их конфиденциальность. Пользователь самостоятельно несет ответственность за все действия (а также их последствия) в рамках или с использованием Сервисов под учетной записью Пользователя, включая случаи добровольной передачи Пользователем данных для доступа к учетной записи Пользователя третьим лицам на любых условиях (в том числе по договорам или соглашениям). При этом все действия в рамках или с использованием Сервисов под учетной записью Пользователя считаются произведенными самим Пользователем, за исключением случаев, когда Пользователь уведомил Инсейлс о несанкционированном доступе к Сервисам с использованием учетной записи Пользователя и/или о любом нарушении (подозрениях о нарушении) конфиденциальности своих средств доступа к учетной записи.

2.12.Пользователь обязан немедленно уведомить Инсейлс о любом случае несанкционированного (не разрешенного Пользователем) доступа к Сервисам с использованием учетной записи Пользователя и/или о любом нарушении (подозрениях о нарушении) конфиденциальности своих средств доступа к учетной записи.

В целях безопасности, Пользователь обязан самостоятельно осуществлять безопасное завершение работы под своей учетной записью по окончании каждой сессии работы с Сервисами. Инсейлс не отвечает за возможную потерю или порчу данных, а также другие последствия любого характера, которые могут произойти из-за нарушения Пользователем положений этой части Соглашения.

 

3.Ответственность Сторон

 

3.1.Сторона, нарушившая предусмотренные Соглашением обязательства в отношении охраны конфиденциальной информации, переданной по Соглашению, обязана возместить по требованию пострадавшей Стороны реальный ущерб, причиненный таким нарушением условий Соглашения в соответствии с действующим законодательством Российской Федерации.

3.2.Возмещение ущерба не прекращают обязанности нарушившей Стороны по надлежащему исполнению обязательств по Соглашению.

 

4.Иные положения

 

4.1.Все уведомления, запросы, требования и иная корреспонденция в рамках настоящего Соглашения, в том числе включающие конфиденциальную информацию, должны оформляться в письменной форме и вручаться лично или через курьера, или направляться по электронной почте адресам, указанным в лицензионном договоре на программы для ЭВМ от 01. 12.2016г., договоре присоединения к лицензионному договору на программы для ЭВМ и в настоящем Соглашении или другим адресам, которые могут быть в дальнейшем письменно указаны Стороной.

4.2.Если одно или несколько положений (условий) настоящего Соглашения являются либо становятся недействительными, то это не может служить причиной для прекращения действия других положений (условий).

4.3.К настоящему Соглашению и отношениям между Пользователем и Инсейлс, возникающим в связи с применением Соглашения, подлежит применению право Российской Федерации.

4.3.Все предложения или вопросы по поводу настоящего Соглашения Пользователь вправе направлять в Службу поддержки пользователей Инсейлс www.ekam.ru либо по почтовому адресу: 107078, г. Москва, ул. Новорязанская, 18, стр.11-12 БЦ «Stendhal» ООО «Инсейлс Рус».

 

Дата публикации: 01.12.2016г.

 

Полное наименование на русском языке:

Общество с ограниченной ответственностью «Инсейлс Рус»

 

Сокращенное наименование на русском языке:

ООО «Инсейлс Рус»

 

Наименование на английском языке:

InSales Rus Limited Liability Company (InSales Rus LLC)

 

Юридический адрес:

125319, г. Москва, ул. Академика Ильюшина, д. 4, корп.1, офис 11

 

Почтовый адрес:

107078, г. Москва, ул. Новорязанская, 18, стр.11-12, БЦ «Stendhal»

ИНН: 7714843760 КПП: 771401001

 

Банковские реквизиты:

Р/с 40702810600001004854

 

В ИНГ БАНК (ЕВРАЗИЯ) АО, г.Москва,
к/с 30101810500000000222, БИК 044525222

Электронная почта: [email protected]

Контактный телефон: +7(495)133-20-43

Нулевая КУДиР для ООО и ИП

Доброго времени суток! Сегодня у меня очередная статья, которую попросили написать в моей группе ВК “ Секреты бизнеса для новичка”.

Темой будет нулевая КУДиР (книга учета доходов и расходов) для:

Тема довольно простая, но давайте обо всем по порядку:

Нулевая КУДиР

Нулевая книга учета доходов и расходов – это ни что иное как обычная книга КУДиР, просто заполненная с нулевыми значениями.

Нулевая КУДиР заполняется, в случае если у Вас не велась деятельность  и все значения по нулям.

Нулевая КУДиР для систем налогообложения

Вы должны знать, что КУДиР ведут при следующих системах налогообложения:

  • ЕНВД – КУДиР не ведется и сдавать нулевую отчетность в случае если Вы не работали нет необходимости;
  • ПСН (только для ИП) – КУДиР необходимо готовить даже если Вы не вели деятельность, то есть с нулевыми значениями;
  • УСН (упрощенка) – в случае если Вы не вели деятельность, то помимо нулевой декларации УСН придется готовить и нулевую книгу доходов и расходов;
  • ЕСХН (сельскохозяйственный налог) – так же как и при УСН в случае, когда деятельность не ведется, то обязательно необходимо делать нулевую КУДиР;
  • ОСНО (общая система) – ну тут вообще без разговоров, не было движений по счетам и деятельности, в общем – то конечно помимо всей остальной отчетности заполняете нулевую КУДиР.

Как Вы заметили из всех систем налогообложения, от ведения КУДиР освобождается только ЕНВД, так как на этом налоге КУДиР вообще не ведется.

Регистрировать, а так же сдавать в налоговую нулевую КУДиР не надо. Разве что в случае камеральной проверки могут затребовать, и Вы по закону обязаны ее предоставить.

Скачать бесплатно образец заполнения нулевой КУДиР

Бесплатно заполненный образец книги доходов и расходов Вы можете с моего Яндекс Диска по ссылке: скачать образец заполнения нулевой КУДиР.

Образец КУДиР заполнен для налога УСН, но тут большой роли не играет, так как бланки книги учета доходов и расходов для других систем налогообложения отличаются не сильно.

Нулевая книга учета доходов и расходов для ИП и ООО должна храниться по месту регистрации ИП или по юридическому адресу ООО, так как ее могут запросить при налоговой проверке (в случае если налоговики посетят Ваш офис). Срок хранения нулевой КУДиР — 4 года.

Изменения в КУДиР 2017 года можно посмотреть: здесь. 

В настоящее время многие предприниматели для ведения КУДиР, расчета налогов, взносов и сдачи отчетности онлайн используют данную Интернет-бухгалтерию, попробуйте бесплатно. Сервис помог мне сэкономить на услугах бухгалтера и избавил от походов в налоговую.

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

Всем удачного бизнеса! Пока!

Как заполнить КУДиР при работе с ККТ

Порядок ведения Книги учета доходов и расходов при УСН регулируется Приказом Минфина России от 22.10.2012 N 135н (ред. от 07.12.2016).

В соответствии с п. 1.1. этого Приказа КУДиР заполняется в хронологической последовательности на основе первичных документов позиционным способом, в ней отражают все хозяйственные операции за отчетный (налоговый) период.

Кассовые чеки пробиваются на каждую отдельную покупку.  В конце рабочего дня смена закрывается и пробивается «Отчет о закрытии смены» и «Отчет о состоянии счетчиков ККТ с гашением №____»

Вопрос в том, имеем ли мы право отразить выручку, полученную наличными деньгами, в КУДиР одной строкой и на основании какого документа?

 

Отчет о закрытии смены содержит информацию о количестве пробитых за смену чеков, но не содержит общую сумму прихода и расхода денежных средств. Этот документ нам не подходит.

Отчет о состоянии счетчиков ККТ с гашением имеет уникальный номер, общую сумму прихода  и разбивку по суммам прихода наличными, безналичными и электронными деньгами.  То есть полная информация для занесения записи в КУДиР и нас есть. Но можем ли мы воспользоваться этим документом?

КУДиР мы должны заполнять на основе первичных документов.

В Налоговом кодексе определения первичных документов нет. Однако понятие первичных документов одинаково и для бухгалтерского, и для налогового учета. И определение того, что есть первичный документ мы находим в статье 9 Федерального закона от 06.12.2011 N 402-ФЗ (ред. от 28.11.2018) «О бухгалтерском учете».

Согласно этому закону первичный документ должен содержать следующие реквизиты:

  1. наименование документа;
  2. дата составления документа;
  3. наименование экономического субъекта, составившего документ;
  4. содержание факта хозяйственной жизни;
  5. величина натурального и (или) денежного измерения факта хозяйственной жизни с указанием единиц измерения;
  6. наименование должности лица (лиц), совершившего (совершивших) сделку, операцию и ответственного (ответственных) за ее оформление, либо наименование должности лица (лиц), ответственного (ответственных) за оформление свершившегося события;
  7. подписи лиц, предусмотренных пунктом 6 настоящей части, с указанием их фамилий и инициалов либо иных реквизитов, необходимых для идентификации этих лиц.

Но Отчет о состоянии счетчиков ККТ с гашением содержит только номер документа и величину денежного измерения. Других обязательных реквизитов нет.

Неужели в КУДиР придется заносить построчно все кассовые чеки?

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

 

Вариант первый — составление бухгалтерской справки

Бухгалтерская справка — это первичный учетный документ, содержащий сведения об операции (событии), которая должна быть отражена в бухгалтерском или налоговом учете (ч. 1 ст. 9 Закона N 402-ФЗ, ст. 313 НК РФ).

Обязательная для применения форма бухгалтерской справки законодательно не установлена. Поэтому ее надо разработать самостоятельно и утвердить в качестве приложения к Учетной политике. При этом форма справки должна содержать все реквизиты, обязательные для первичного документа (ч. 2 ст. 9 Закона N 402-ФЗ).

Бухгалтерская справка оформляется, когда выполняется любое из двух условий:

  1. для учета какой-либо операции (события) составление другого первичного документа не предусмотрено;
  2. для учета какой-либо операции (события) на основании имеющихся первичных документов необходимо провести дополнительные расчеты. В этом случае оформляется бухгалтерская справка-расчет. 

Так как бухгалтерская справка сама является первичным документом, то на её основе мы вполне законно можем сделать запись в КУДиР. А к этой бухгалтерской справке приложить Отчет о закрытии смены и Отчет о состоянии счетчиков ККТ с гашением.

Вот примерная форма бухгалтерской справки. Для организаций, ведущих бухгалтерский учет, указание корреспонденции счетов необходимо. А для ИП, не ведущих бухгалтерский учет, столбцы корреспонденции счетов можно удалить.

Форму бухгалтерской справки не забудьте утвердить в Приложении к Учетной политике!!!

 

Вариант второй — на основе Приходного кассового ордера (ПКО)

Если у вас есть кассир, то он обязан сдавать выручку за свою смену по приходному кассовому ордеру.

Кому он будет сдавать выручку — самому ИП или бухгалтеру — это ваш выбор, этот вопрос касается вашей организационной структуры бизнеса. 

Каким образом вести кассовые операции ИП я описала в статье «Порядок ведения кассовых операций для ИП упростили. Но не все так просто…»  Эта статья НЕ касается применения ККТ, НЕ касается порядка приема выручки от физических лиц за товары, работы и услуги. Под кассовыми операциями понимаются операции по приему и выдаче наличных денежных средств, осуществляемые кассами внутри организаций и ИП.

На основании ПКО мы имеем полное право сделать запись в КУДиР о полученных доходах одной строкой за всю смену.

Форма ПКО утверждена и менять её нельзя.

 

Вариант третий — налоговый регистр на основе реестров ОФД

Каждый кассовый аппарат через интернет связан с оператором фискальных данных (ОФД). В личном кабинете ОФД можно вывести в табличку Excel реестр пробитых чеков за определенный период времени.

В этом реестре есть все необходимые данные. И не составит большого труда в эту электронную табличку подставить шапку  и подпись ответственного за ведение этого налогового регистра лица.

Налоговый регистр также является первичным документом для налогового учета (ст. 313 НК РФ) и на основании налогового регистра можно сделать запись в КУДиР.

Если вы выбираете этот вариант, то в приложении к Учетной политике вам необходимо утвердить форму и порядок заполнения этого регистра.

Порядок заполнения налогового регистра можно записать следующим образом:

Расчет суммы дохода наличными деньгами и картами банка через ККТ производится в налоговом регистре РД-Н на основании реестра ОФД «_______________» (наименование ОФД).

Налоговый регистр формируется ежедневно или помесячно  (нужное выбрать). Итоговые данные заносятся в КУДиР как налогооблагаемый доход.

 

Как в 1С 8.3 страховые взносы отразить в КУДиР

Добрый день, уважаемые читатели! Сегодня мы продолжаем серию статей о том, как заполнить КУДИР для тех, кто в качестве налогового спецрежима использует упрощенку или патент. Мы уже писали про заполнение КУДИР на УСН с Доходов, а также про заполнение КУД для ИП на патенте. Сегодня речь пойдет о КУДИР для тех, кто считает налог УСН по другой базе, уменьшая доходы на расходы. Заполнять такую КУДИР сложнее, но разобраться все-таки можно. Если у вас не очень много операций за год, то заполнить вы ее сможете сами.

Заполнять КУДИР автоматически, вести учет и сдавать отчетность удобнее всего в специальном сервисе.

Содержание

  • Шаг 1: Как заполнить титульный лист
  • Шаг 2: Что ставим в Разделе I Доходы и расходы
  • Шаг 3: Как сделать расчеты в Разделе II
  • Шаг 4: Что делать с Разделом III

Думаю, что не стоит напоминать о том, что КУДИР ведут все ИП и компании, применяющие упрощенку. Принципиальных отличий по заполнению книги первыми и вторыми нет – все делается практически одинаково. Об основных требованиях к ее заполнению мы уже говорили, поэтому тоже повторяться не будем. Приступим сразу к делу.

КУДИР имеет унифицированную форму, заполнять нужно именно ее. Найти бланк и указания по его заполнению можно в Приказе Минфина РФ № 135н от 22.10.2012 г. с учетом изменений, внесенных Приказом Минфина № 227н от 07.12.2016г. По обновленной форме КУДИР заполняется, начиная с 2021 года, прежние периоды должны быть заполнены на старом бланке. На 2021 год изменений не предусмотрено, заполняем данные по уже действующей форме.

отчета можно также вот ЗДЕСЬ.

Итак, если вы уже скачали и распечатали форму и она уже лежит перед вами, пробежимся по ее разделам, которых всего четыре. Ну и плюс титульный лист. Форма содержит:

  • Титульный лист – здесь указываем сведения о налогоплательщике;
  • Раздел I Доходы и расходы – для поквартального отражения доходов / расходов;
  • Раздел II Расчет расходов на ОС и НМА, которые учитываются при расчете базы для налога – заполняется при наличии самих ОС и НМА;
  • Раздел III Расчет суммы убытка, учитываемого при исчислении УСН – заполняем опять же по необходимости, т. е. если в предыдущие года был убыток;
  • Раздел IV Расходы, уменьшающие налог на УСН в соответствии с НК РФ – здесь показывают суммы страховых взносов те, кто считает УСН с Доходов.
  • Раздел V Данные о торговом сборе. Пока этот Раздел актуален лишь для московских предпринимателей, применяющих УСН «Доходы» и уплачивающих торговый сбор.

Программы для ведения КУДиР

Очевидно, что при наличии существенного количества хозяйственных операций в году, КУДиР разумно вести именно в электронном виде. Это позволит не только легко исправлять возможные ошибки текущего года, но и автоматически формировать налоговую базу, рассчитывать налог при УСН и авансовые платежи по нему. Ведь одна из основных задач КУДиР – именно верное формирование налоговой базы.

На рынке представлено достаточно много программ для ведения КУДиР для ИП и организаций с различным функционалом: от простого внесения данных в строки книги до автоматического формирования книги по введенным операциям с составлением декларации. Выбирать следует, исходя из потребностей пользователя. Потребности будут отличаться для организации на УСН “доходы-расходы” и для ИП на доходной упрощенке без сотрудников.

Самый элементарный вариант, сродни ведению КУДиР на бумаге и подходящий для налогоплательщика с небольшим количеством операций – это составление таблиц в Excel.

Далее рассмотрим наиболее популярные программы для упрощенцев. Существуют как бесплатные варианты, так и платные. Плата за такие программы обычно невысока. Как правило, в программах, например в 1С, КУДиР заполняют не внесением данных непосредственно в строки книги, а формированием документов прихода/расхода, на основании которых книга выводится автоматически.

В рекламных анонсах многих подобных программ указано, что они позволяют вести весь учет без знания бухгалтерии. Хотим предостеречь от этого заблуждения. Быть полностью уверенным в корректности ведения учета без консультации бухгалтера нельзя. Поэтому даже при наличии программы получить совет профессионала бывает необходимо.

До 2021 года ведение КУДиР было возможно в бесплатной программе ФНС «Налогоплательщик ЮЛ». Однако в новых версиях, доступных к загрузке с сайта ФНС, эта опция по каким-то причинам исключена. Пользоваться бесплатным софтом от налоговой теперь можно только для составления деклараций УСН.

КУДиР для объекта налогообложения – доходы

Налогоплательщики – как организации, так и ИП – выбравшие объектом налогообложения доходы, заполняют:

Разделы 4 и 5 заполняют при наличии данных для внесения в них.

Порядок расчета налога при доходной упрощенке:

Соотнося формулу и КУДиР, получаем:

  • в Раздел 1 вносим данные о доходах;
  • в Раздел 4 вносим данные о фактически уплаченных взносах и больничных;
  • в Раздел 5 вносим данные о фактически уплаченном торговом сборе.

По итогам каждого квартала необходимо рассчитать общую сумму дохода за квартал нарастающим итогом. Справочную информацию в конце раздела заполнять не требуется.

В Раздел 4 записываем поквартально суммы взносов и больничных, которые фактически выплачены, а не начислены, так как уменьшить налог можно исключительно при условии уплаты сумм в уменьшение (п. 3.1 ст. 346.21 НК РФ).

Каждая графа раздела предназначена для своего вида взносов.

Также подлежит отражению дата уплаты соответствующих взносов и период, за который взносы уплачены.

Суммирование идет по каждому виду взносов за квартал и нарастающим итогом, по всем взносам за отчетный период (графа 10 Раздела 4). В графе 8 отражаются суммы больничных, выплаченных за счет работодателя, то есть за первые 3 дня болезни.

В Разделе 5 отражены дата и сумма уплаченного торгового сбора, а также период, за который произведена уплата.


Образец заполнения 2021 КУДиР при УСН “доходы” скачать бесплатно по прямой ссылке можно здесь:

ПРИМЕР ЗАПОЛНЕНИЯ КУДиР “ДОХОДЫ”

Изучаем нюансы заполнения раздела 2 Книги учета доходов и расходов

При общем режиме у организации имеется возможность самостоятельно разработать формы, по которым будет вестись налоговый учет, тогда как налогоплательщикам, применяющим УСН, выбирать не приходится. Удобно это или нет, но единственным налоговым регистром для них является Книга учета доходов и расходов, поэтому правила ее заполнения следует изучить детально.

Форма Книги учета доходов и расходов при упрощенной системе и Порядок ее заполнения (далее — Порядок) утверждены приказом Минфина России от 31.12.2008 № 154н.

Вначале общие сведения. Книгу учета разрешается вести на бумажном носителе или в электронном виде. В обоих случаях правила оформления одинаковы, только «бумажную» версию заверяют в налоговой инспекции до начала налогового периода, то есть до внесения записей о доходах и расходах, а распечатку «электронной» Книги учета заверяют лишь по окончании налогового периода.

Как вести книгу доходов на патентной системе налогообложения

Патентная система налогообложения не освобождает от налогового учёта полностью. У предпринимателей остаётся обязанность вести книгу учёта доходов. За отсутствие книги штрафуют на сумму до 30 тыс. ₽.

Казалось бы, какая разница: на патенте налоги не зависят от доходов, 1% взносов считают от потенциального дохода, налоговых деклараций нет. Но для налоговой разница есть, потому что ИП на патенте она тоже регулярно проверяет.

Налоговую интересует:

  1. Не превысил ли ИП лимиты? При доходах больше 60 млн за год по всем патентам — применять эту систему уже нельзя. Соответственно, ИП должен заплатить налог с начала года по УСН или ОСНО, а бюджет — получить больше денег. Конечно, опасность такой проверки есть у бизнеса с большими оборотами. К ИП с парой сотрудников вряд ли придут. 

  2. Не должен ли ИП платить за несколько патентов? Например, проверяют межрегионального перевозчика. Формально, он должен получать все заказы в своём регионе. Налоговая запрашивает КУДиР, составляет список интересных ей операций — и запрашивает соответствующие договоры у предпринимателя. Договоры заключили в другом регионе — значит, можно доначислять налог. 

Как заполнять книгу учёта доходов

Пользуйтесь стандартной формой КУД. Она утверждена приказом Минфина от 22.10.2012 № 135н и является обязательной. На каждый налоговый период должна приходиться своя КУД. При совмещении патентов можно вести одну книгу по всем видам деятельности, вести по каждому направлению бизнеса свой документ — необязательно. 

В книге не нужно записывать расходы, а ещё — поступления, которые не являются доходами. Например, переводы с личного счёта на расчётный — это не доходы, они не приносят экономической выгоды. Записывайте именно доходы и обязательно указывайте: что за операция произошла и каким первичным документом она подтверждается. Для безналичной операции подойдут дата и номер платёжного поручения.

При возврате денег за товар или услугу тоже сделайте запись в книгу. Запишите сумму возврата со знаком минус. 

Можно ли вести книгу доходов в электронном виде

Книгу доходов можно вести как на бумаге, так и в электронном виде — см. п. 1.4 приложения 4 к приказу Минфина № 135н. Если выбрали электронный вид, после завершения налогового периода книгу нужно распечатать, прошнуровать и пронумеровать. На последней странице следует указать количество страниц, заверить данные сведения подписью и скрепить печатью (если есть). 

Если предприниматель хочет вести книгу на бумаге, правильно будет сделать все эти операции перед заполнением книги. Хотя мы не слышали о штрафах за такое нарушение.

В любом случае, регистрировать книгу в инспекции не нужно — такого требования нет в порядке заполнения, и подобные разъяснения Минфин приводит давно, например, см. письмо Минфина России от 11.02.2013 № 03-11-11/62.

Налоговая получает книгу, только когда запрашивает её. У многих предпринимателей КУД никогда не запрашивали. 

Эльба сформирует книгу учёта доходов и подготовит платёжки по патенту. Попробуйте все возможности онлайн-бухгалтерии 30 дней бесплатно.

Попробовать

Ответственность за отсутствие КУД

Если предприниматель не ведет книгу учета доходов, то налоговая инспекция может его оштрафовать по ст. 120 НК РФ. Дело в том, что отсутствие книги классифицируется как грубое нарушение правил учета доходов. Размер штрафа составит:

  • 10 тыс. ₽, если нарушение происходило в течение одного налогового периода;
  • 30 тыс. ₽, если нарушение затрагивает несколько налоговых периодов.

где найти, как заполнить, проблемы при заполнении

Книгу учета доходов и расходов (сокращенно КУДиР) в 1С 8.3 ведут организации и предприниматели, которые используют упрощенную систему налогообложения (УСН).

Где в 1С 8.3 КУДиР и как его заполнить?

Начнем с простого вопроса: где в 1С найти КУДиР? Её можно найти следующим образом: заходим в меню «Отчеты», затем в разделе «Отчеты по УСН» нажимаем ссылку «Книга доходов и расходов УСН». Попадаем в окно заполнения книги:

Книга заполняется автоматически, поквартально. Обычно ее формируют по окончании года и сдают налоговому инспектору вместе с бухгалтерской регламентированной отчетностью.

Книга доходов и расходов содержит несколько разделов:

  • доходы и расходы указываются поквартально, с начала года и до конца года;
  • расходы на основные средства и нематериальные активы;
  • раздел с расчетом сумм убытков;
  • и раздел, где можно указать суммы, уменьшающие налогообложение по тем или иным причинам.

В основном, книга формируется по документам реализации товаров, услуг и по документам поступления товаров и услуг.

Важно учесть, что реализация (расходы) попадет в книгу учета доходов и расходов после оплаты товаров или услуг (правда, в программе для этого нужно сделать соответствующую настройку, на рисунке я ее выделил). Еще перед формированием книги нужно проделать необходимые регламентные операции , которые проводятся в конце квартала. Например, сделать закрытие месяца.

Настройка формирования книги учета доходов и расходов в 1С 8.3

Прежде чем формировать КУДИР, следует проверить настройки учетной политики организации. Они могут повлиять на правильность формирования книги.

Получите 267 видеоуроков по 1С бесплатно:

Зайдем в меню «Главное», затем по ссылке «Организации» перейдем к списку организаций. Зайдем в нужную нам организацию, а затем в «Учетную политику».  В 1С 90% случаев вроде «не заполняется КУДиР» или «не попадает в КУДиР» решаются с помощью настройки учетной политики.

Нажмем на кнопку «Признание расходов» (эта кнопка появляется, когда объектом налогообложения является «доходы – расходы»).

Кроме общих настроек в Учетной политике, есть еще настройки при печати самой книги.

Вернемся к КУДИР и нажмем кнопку «Показать настройки».

Откроется окно с настройками:

Самым интересным и нужным здесь является флажок «Выводить расшифровки». Установив данный флажок, можно посмотреть, каким документом сформировался тот или иной доход или расход.

Остальные настройки влияют на внешний вид книги. В разных налоговых требуют по-разному.

Корректировка записей книги учета доходов и расходов в 1С Бухгалтерии 8.3

Как я уже упоминал, книга формируется автоматически. Но иногда необходимо скорректировать вручную данные для учета в налоговой. Для этого служит документ «Записи книги учета доходов и расходов (УСН)».

Находится он в меню «Операции», раздел «УСН». Сформируем такой документ. В форме списка нажимаем кнопку «Создать». Откроется форма создания нового документа:

Как видим, корректирующий документ содержит три раздела:

  • корректировка доходов и расходов;
  • корректировка расходов, связанных с приобретением основных средств;
  • корректировка расходов, связанных с приобретением нематериальных активов.

Если учет в программе ведется по нескольким организациям, в шапке документа обязательно нужно указать ту организацию, по которой происходит корректировка.

После заполнения и проведения документа он будет учитываться в КУДИР.

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Передача переменных данных в cURL для автозаполнения веб-форм · JournalXtra

Как уютно с cURL

Это не 10 лучших волшебных вещей, которые можно сделать с публикацией cURL. Их много в сети, и внизу вы найдете несколько ссылок, чтобы доказать это. Нет, этот пост об одном — об использовании переменной для отправки данных в cURL без путаницы в процессе.

cURL — это утилита командной строки для получения и отправки данных на серверы.Это немного похоже на wget.

Вы можете подумать, что можете просто создать переменную и использовать эту переменную в своей команде cURL и ожидать, что cURL знает, что с ней делать, но это не совсем работает, как подтвердит любой, кто пытался это сделать. Если вы сделаете это с пробелами или символами в ваших данных, которые можно спутать со специальными символами cURL и параметрами cURL, вы получите ошибку «curl: (6) Не удалось разрешить хост».

Например, если вы хотите автоматически заполнить веб-форму с полями

 Ввод: ИМЯ = "Имя" (ТЕКСТ)
Ввод: ИМЯ = "Возраст" (ТЕКСТ)
Ввод: ИМЯ = "Город" (ТЕКСТ)
Ввод: NAME = "Form_Submit" VALUE = "Отправить" (SUBMIT) 

Чтобы разместить данные на этой веб-странице, используйте что-то вроде этого:

 curl -d Name = "Капитан Кирк" -d Age = "123" -d Town = "The USS Enterprise" -d Form_Submit = "Отправить" http: // www.example.com/process-form.php 

Опция «-d» сообщает cURL, что следующий элемент — это некоторые данные, которые должны быть отправлены на сервер по адресу http://www.example.com/process-form.php.

Первый элемент после «-d» — это имя поля формы, например Town = «The USS Enterprise». Знак равенства и элемент в кавычках после поля формы — это данные, которые должны быть отправлены на сервер.

cURL ожидает, что после пробела будет либо параметр, либо URL-адрес. Без кавычек, окружающих отправляемые данные, например, Name = «Captain Kirk», cURL будет предполагать, что «Kirk» является URL-адресом, поэтому попытается отправить данные Name = Captain на несуществующий веб-адрес Кирка.cURL ответит «curl: (6) Не удалось разрешить хост Кирк».

Итак, общий формат для отправки данных с cURL:

 curl -d form-field = "данные данные" URL 

Если бы мы использовали переменную для передачи данных в cURL, мы могли бы написать что-то вроде этого:

 DATA = "Имя = 'Капитан Кирк'"
curl -d $ DATA URL 

Но это не сработает, потому что кавычки удаляются из данных, хранящихся в переменной $ DATA, и получается:

 Имя = Капитан Кирк 

Какой cURL видит как

 curl -d Имя = Капитан Кирк URL 

С помощью cURL мы можем отправлять одну и ту же информацию по нескольким URL-адресам, указав каждый URL-адрес через пробел.В нашем примере попытка использования переменной указывает cURL заполнить поле формы «Имя» данными «Капитан» на хостах «Кирк» и «URL».

Решение состоит в том, чтобы заменить специальные символы и коды опций cURL их эквивалентами в Юникоде. В этом случае мы заменим пробел в данных на «% 20».

Если в нашем примере заменить «пробел» на «% 20», получится

 DATA = "Имя = Капитан% 20Кирк"
curl -d $ DATA URL 

Теперь cURL получает это

 curl -d Имя = Капитан% 20 Кирк URL 

Сервер, получающий данные, преобразует «% 20» в обычный пробел.

Объединение данных формы

cURL позволяет нам объединять несколько полей формы вместе с амперсандом (&). Например,

 curl -d Name = "Captain Kirk" -d Age = "123" -d Town = "The USS Enterprise" -d Form_Submit = "Отправить" URL 

можно написать

 curl -d Name = Captain% 20Kirk & Age = 123 & Town = The% 20USS% 20Enterprise & Form_Submit = Отправить URL 

Обратите внимание, что мы используем только одну опцию «-d», которая помещается перед нашей строкой данных.

Но что бывает, когда например..

 curl -d comment = ".. наши данные формы содержат амперсанды и другие специальные символы, такие как" -d ", двойные и одинарные кавычки, ats (@) или URL-адреса?" 

Я дам вам подсказку: что происходит, когда вы кладете много разных фруктов в блендер?

Опять же, мы должны преобразовать специальные символы в наших полях формы в их эквиваленты Unicode.

В Bash я делаю это с помощью sed. Следующий сценарий Bash помещает данные, передаваемые в cURL, в текстовый файл, а затем использует sed для преобразования специальных символов в их эквиваленты Unicode, прежде чем вызывать данные из текстового файла (с помощью cat) и помещать их обратно в переменную, которая передается в cURL :

 #! / bin / bash

# Поместите данные для заполнения формы в переменную $ DATA.DATA = "комментарий = некоторые данные и прочее"

# Укажите URL-адрес для отправки информации на

URL = "http://example.com"

# Поместите $ DATA в файл

echo "$ DATA"> temp-file.txt

# Преобразование специальных символов в их эквиваленты Unicode #

sed -ir 's # #% 20 # g' $ workbox / $ tempthree # пробел
sed -ir 's # "#% 22 # g' $ workbox / $ tempthree #"
sed -ir "s # '#% 27 # g" $ workbox / $ tempthree #'
sed -ir 's # `#% 60 # g' $ workbox / $ tempthree #`
sed -ir 's # \\ #% 5c # g' $ workbox / $ tempthree # \
sed -ir 's # &% 20 # 26% 20 # g' $ workbox / $ tempthree # & space;
sed -ir 's #% 20 & #% 2026 # g' $ workbox / $ tempthree # пробел &
sed -ir 's # @ #% 40 # g' $ workbox / $ tempthree # @
sed -ir 's # - #% 2d # g' $ workbox / $ tempthree # -
sed -ir 's # =% 20 #% 3d% 20 # g' $ workbox / $ tempthree # = пробел
sed -ir 's #% 20 = #% 20% 3d # g' $ workbox / $ tempthree # пробел =

# Прочитать данные из временного файла.txt в переменную $ DATA

DATA = `cat temp-file.txt`

# Передаем переменные в cURL

curl -d $ DATA $ URL 

Приведенный выше код преобразует амперсанды и знаки равенства только в том случае, если перед ними или после них стоит пробел. Это ограничение предназначено для предотвращения непреднамеренного преобразования предполагаемых специальных символов «=» и «&» в Unicode.

То же самое можно сделать в PHP, используя preg_match () (внешний сайт) вместо sed.

Итак, вот оно.Теперь вы знаете, как использовать переменную с cURL.

Диаграмма Unicode доступна здесь (внешний сайт) на случай, если вам потребуется преобразовать дополнительные символы.

Рабочий пример сценария

Вы можете увидеть лучший пример передачи переменных в cURL в сценарии Bash Auto-Form-Filler, который я добавил в Scriptilitious несколько дней назад.

Auto-Form-Filler использует несколько иной подход: он позволяет пользователю указать количество полей формы для заполнения, просит пользователя заполнить эти поля формы, а затем сохраняет введенные пользователем данные в массиве.Затем отдельные записи массива помещаются в файл, и любые специальные символы затем преобразуются в Unicode, прежде чем данные будут возвращены в массив. Затем массив используется для построения входных данных в одну строку данных, которые помещаются в переменную, которая может быть прочитана cURL.

Преобразование пользовательского ввода в переменную, как это делает Auto-Form-Filler, позволяет преобразовать все символы в пользовательском вводе, которые имеют особое значение для cURL, прежде чем требуемые cURL специальные символы будут использованы для объединения полей данных в требуемом формате cURL.

Изучите сценарий Auto Form Filler, загрузив Scriptilitious и просмотрев файл автозаполнения формы в его каталоге ScriptBox (Get Scriptilitious здесь).

Auto-Form-Filler считывает список URL-адресов, на которые отправляет данные формы. Сообщите мне, что вы думаете об этом.

Ссылки на ресурсы

Вот то, что я обещал в начале статьи: ссылки на блоги, которые демонстрируют изящные уловки cURL. Да, и ссылка на домашнюю страницу cURL.

Домашняя страница cURL

UTF 8 Таблица

10 замечательных вещей, которые можно сделать с cURL

6 основных команд cURL

Знаете ли вы, как лучше использовать переменные с cURL? Или у вас есть несколько приемов, которыми вы хотели бы поделиться? Оставить комментарий.Если у вас есть веб-сайт, на котором есть советы и рекомендации по cURL, я могу даже добавить его в этот раздел ресурсов.

Исходный контент здесь опубликован в соответствии с этими условиями лицензии: X
Тип лицензии: Только чтение
Краткое содержание лицензии: Вы можете читать исходное содержимое в контексте, в котором он опубликован (по этому веб-адресу). Никакое другое копирование или использование не разрешается без письменного согласия автора.

Поделиться — это забота!

Заполнение веб-форм с помощью cURL и wget

О, черт возьми, еще один пост cURL и веб-формы! Я не удержался от написания этого. Находя информацию о formfind, я заметил отсутствие прямой помощи для людей, желающих ее использовать, поэтому решил заполнить пробел на рынке.

Вопросы, ответы на которые этот пост:

  • Как заполнить онлайн-форму, не посещая веб-сайт?
  • Как мне отправлять информацию в онлайн-формы со своего рабочего стола?
  • Как использовать Bash для заполнения онлайн-форм?
  • Как найти поля формы в исходном коде веб-сайта?
  • Как загрузить веб-страницу с помощью wget?
  • Как загрузить веб-страницу с помощью cURL?
  • Как использовать поиск формы?

Заполнение веб-форм с помощью cURL и wget

Для заполнения веб-форм с помощью formfind вам необходимо:

  • Скачать formfind
  • Загрузите исходный код страницы, содержащей форму
  • Используйте formfind для поиска полей формы
  • Используйте wget или cURL для заполнения формы

Все это можно легко автоматизировать с помощью BASH-скрипта.

Как получить Formfind

Есть два способа получить formfind:

Скачать вручную

  1. Скачать Formfind с GitHub
  2. Скопируйте код в текстовый файл и сохраните его как formfind
  3. Сделайте сценарий исполняемым, щелкнув его правой кнопкой мыши, выбрав свойства, а затем щелкнув «является исполняемым».

Пусть Linux сделает всю работу за вас. Мы можем загрузить Formfind с помощью однострочной инструкции:

  1. Скопируйте и вставьте эту команду в терминал, чтобы загрузить formfind на рабочий стол и сделать его исполняемым:
     завиток https: // raw.githubusercontent.com/VR51/formfind/master/formfind.pl> ~ / Desktop / formfind.pl; chmod + x ~ / Рабочий стол / formfind.pl 

Загрузка исходного кода

Прежде чем вы сможете использовать formfind, вам необходимо загрузить исходный код веб-страницы, на которой находится форма, и сохранить код в текстовый файл. Вы можете сделать это с помощью wget или cURL.

Использование wget:

 wget http://example.com> file.txt 

Использование cURL

 curl http://example.com> файл.txt 

Если wget и cURL не установлены на вашем компьютере, вы можете установить их с помощью:

 sudo apt-get build-dep wget curl; sudo apt-get install wget curl 

Использование Formfind

Formfind находит формы на страницах HTML. Он выводит свой отчет на экран, если его вывод не перенаправляется в файл или другой сценарий.

Formfind запускается из каталога, в котором он находится, путем ввода команды

 ш /formfind.pl 

Если вы запускаете formfind из другого каталога, вам нужно будет указать путь к formfind после команды «sh».

Чтобы передать исходный код из файла в formfind, введите

 sh /path-to-formfind/formfind.pl 

Например, если у вас было

  1. formfind сохранен на рабочем столе (formfind)
  2. Исходный код страницы формы, сохраненной на рабочем столе (file.txt)
  3. На вашем компьютере открыт терминал (Konsole)

Вы должны использовать следующую команду для запуска formfind, чтобы найти данные формы в file.txt

 ш ~ / formfind.pl <~ / Desktop / file.txt 

Обратите внимание, что символ тильды (~) представляет домашний каталог активного пользователя, а знак «меньше» (<) сообщает Bash, что нужно передать formfind любые данные, находящиеся в файле, записанном после него.

Результат

Formfind будет выглядеть примерно так:

 --- ФОРМА отчета. Использует POST для URL "page-two.php"
Ввод: ИМЯ = "Имя" (ТЕКСТ)
Ввод: ИМЯ = "Возраст" (ТЕКСТ)
Ввод: ИМЯ = "Город" (ТЕКСТ)
Ввод: NAME = "Form_Submit" VALUE = "Отправить" (ОТПРАВИТЬ)
--- конец ФОРМЫ 

Мы проанализируем этот отчет через несколько минут.

Использование Formfind с wget и cURL для заполнения форм

И wget, и cURL захватывают исходный код любой веб-страницы, которая их не блокирует. cURL выводит свой вывод на экран консоли, а wget сохраняет файлы в тот каталог, из которого он был вызван.

Чтобы использовать wget для сохранения исходного кода со страницы, содержащей форму, например:

 wget https://example.com> ~ / Рабочий стол / page.txt 

Чтобы использовать cURL, чтобы сделать то же самое, вы должны использовать

 curl https: // пример.com> ~ / Рабочий стол / page.txt 

Знак «больше» (>) используется для указания wget и cURL, куда отправлять свои выходные данные.

Вам нужно написать две инструкции для передачи данных в formfind:

  1. Один для использования wget или cURL, загрузите веб-страницу с формой
  2. Один для передачи источника страницы загрузки в formfind

Например,

 curl https://example.com> ~ / Рабочий стол / page-one.html
sh formfind.pl <~ / Desktop / page-one.html 

Обе эти команды можно поместить в одну строку, разделив их точкой с запятой, как это

 curl https: // пример.com> ~ / Desktop / page-one.html; sh formfind.pl <~ / Desktop / page-one.html 

Использовать formfind так просто.

Общие сведения об отчете Formfind

Посмотрите на это изображение:

Formfind: отчет о форме Снимок экрана

Это результат использования cURL и команды Formfind для сбора информации о форме.

Он показывает следующие детали формы:

 --- ФОРМА отчета. Использует POST для URL "page-two.php"
Ввод: ИМЯ = "Имя" (ТЕКСТ)
Ввод: ИМЯ = "Возраст" (ТЕКСТ)
Ввод: ИМЯ = "Город" (ТЕКСТ)
Ввод: NAME = "Form_Submit" VALUE = "Отправить" (ОТПРАВИТЬ)
--- конец ФОРМЫ 
Веб-формы

HTML работают, позволяя пользователю нажимать кнопки, выбирать элементы из раскрывающихся меню или вводить информацию в текстовое поле и т. Д.На самом деле, когда кто-то заполняет форму, он присваивает значения переменным. Это сложный способ сказать, что пользователь сообщает серверу, что «ответить один = кнопка один», «ответить два = выпадающий пункт три» и «ответить четыре = какое-то сообщение». Значения этих переменных подтверждаются, когда средство заполнения формы нажимает «отправить». Затем эта информация обычно отправляется на другую страницу, которая обрабатывает данные формы.

В форме примера есть три текстовых поля, показанных на скриншоте:

  1. Имя
  2. Возраст
  3. Город

В верхней строке отчета поиска формы указано:

Отчет
 ФОРМА.Использует POST для URL "page-two.php" 

Эта строка сообщает нам, что форма использует метод «post» для отправки данных на «page-two.php». Это означает, что данные формы обрабатываются page-two.php.

Строки, начинающиеся с «Input: Name =», сообщают нам названия полей в форме. Эти названия на самом деле являются переменными. В этом случае переменные PHP. Цитируемые тексты являются их именами. Например, первая строка ввода

 Ввод: ИМЯ = "Имя" (ТЕКСТ) 

сообщает нам, что в форме есть поле под названием «Имя».Текст в скобках говорит нам, что это ТЕКСТОВОЕ поле.

Подводя итог, formfind читает исходный HTML-код веб-страницы, чтобы составить отчет о любых формах, которые он содержит. Этот отчет сообщает нам адрес страницы, на которую форма отправляет данные для обработки, имена переменных, которые эта страница ожидает получить, тип информации, которую она ожидает от этих переменных, и - для раскрывающихся списков и полей выбора - возможные значения, которые могут содержать эти переменные.

Например, используя снимок экрана,

  1. Тестовая форма находится по адресу https: // journalxtra.ru / tutorials / php-data-pass / page-one.html
  2. Его переменные: Имя , Возраст и Город
  3. При нажатии «Отправить» эти переменные отправляются на https://journalxtra.com/tutorials/php-data-passing/ page-two.php

Название кнопки «Отправить» не требуется. Когда мы заполняем форму с помощью wget или cURL, мы отправляем данные прямо на страницу, которая обрабатывает форму. Фактически, wget и cURL выполняют функцию кнопки отправки.

Примеры URL, показанные выше, больше не ведут на реальные страницы. Я удалил страницы, когда перенес JournalXtra из Hostgator в Namecheap.

Щелкните здесь, чтобы узнать, как создать веб-форму.

Заполнение форм cURL

cURL может как загружать веб-страницы, так и отправлять на них данные; что очень удобно для заполнения веб-форм. Мы используем следующий формат:

 curl -d [данные-формы] [веб-страница-обрабатывающая-форма] 

Параметр «-d» - это параметр, который сообщает cURL, что он собирается передать данные, которые необходимо отправить по любому URL-адресу, указанному после данных.

Чтобы отправить МОЕ имя (Ли) в форму, я мог бы написать:

 curl -d Name = "Lee" https://example.com/page-two.php 

Чтобы отправить свой возраст (осмелюсь раскрыть это!), Я бы написал:

 curl -d Age = "36" https://example.com/page-two.php 

Чтобы отправить все три имени, возраста и города на page-two.php за один раз, я бы написал:

 curl -d Name = "Lee" -d Age = "36" -d Town = "Интернет" https://example.com/page-two.php 

Эта последняя команда отправляет мои ответы во все три поля прямо на страницу, обрабатывающую данные формы (page-two.php).

Важно цитировать ответы, чтобы предотвратить путаницу cURL в том, что его просят сделать. Например, если я укажу свой город как «Интернет», без кавычек cURL будет считать, что ответ на «Город» будет «The», прежде чем он попытается отправить данные на хост под названием «Интернет».

Альтернативой цитированию является использование процентного кодирования символов, которые имеют учебное значение для cURL, то есть найти значение UTF8 любого специального символа и поставить перед ним знак процента e.g% 20 - пробел.

Когда вы заполняете форму с помощью cURL, cURL напишет ответ сервера для заполненной формы на ваш экран. Вы можете перенаправить его в файл со знаком «больше» (>). Например,

 curl -d Name = "Lee" -d Age = "36" -d Town = "Интернет" https://example.com/page-two.php> ~ / Desktop / form-response.html 

Нажмите здесь, чтобы узнать больше о заполнении форм с помощью cURL.

Заполнение форм с помощью wget

Это работает по существу так же, как и для cURL, за исключением того, что данные формы выражаются немного иначе.На этот раз мы используем формат:

 wget --post-data 'Имя = Значение' http://example.com 

Отличия, о которых вам нужно знать:

  1. wget использует «–post-data» вместо параметра «-d» cURL
  2. wget объединяет несколько значений переменных с амперсандом (&)

Например,

 wget --post-data 'Name = Lee & Age = 36 & Town = The% 20Internet' https://example.com/page-two.php 

Обратите внимание, что пространство, используемое в «Интернет», заменено на% 20.

Амперсанд, используемый как часть ответа поля, будет заменен на% 26.

Например

 --post-data "Name = Me% 20% 26% 20 & Age = 36 ..." 

Обратите внимание, что cURL также допускает объединение данных формы в одну строку с амперсандом, например, curl -d «Name = Lee & Age = 36…».

Сводка

Вы можете использовать cURL или wget для заполнения веб-форм без использования веб-браузера. Метод до

  1. Загрузите страницу формы с помощью curl или wget
  2. Загрузите загруженную страницу для поиска формы
  3. Изучите отчет formfind, чтобы узнать имя страницы, которая обрабатывает форму
  4. Изучите отчет formfind, чтобы узнать имена полей, которые содержит форма
  5. Используйте cURLor wget для отправки данных на страницу процессора

Например, cURL

  1. Загрузите formfind на рабочий стол и сделайте его исполняемым скриптом
     завиток https: // raw.githubusercontent.com/VR51/formfind/master/formfind.pl> ~ / Desktop / formfind.pl; chmod + x ~ / Рабочий стол / formfind.pl 
  2. Загрузите страницу формы в файл с именем page-one.html на рабочем столе.
     завиток https://example.com/form.html> ~ / Рабочий стол / page-one.html 
  3. Подавать form.html в formfind
     sh ~ / Рабочий стол / formfind.pl <~ / Рабочий стол / form.html 
  4. Изучите вывод
     --- ФОРМА отчета. Использует POST для URL "form-data.php"
    Ввод: ИМЯ = "Имя" (ТЕКСТ)
    Ввод: ИМЯ = "Возраст" (ТЕКСТ)
    Ввод: ИМЯ = "Город" (ТЕКСТ)
    Ввод: NAME = "Form_Submit" VALUE = "Отправить" (ОТПРАВИТЬ)
    --- конец ФОРМЫ 
  5. Отправить ответ на страницу POST to URL (e.g form-data.php), используя показанные заголовки полей, и запишите ответ в файл (например, response.html) на рабочем столе.
     curl -d Name = "Lee" -d Age = "36" -d Town = "Интернет" https://example.com/form-data.php> ~ / Desktop / form-response.html 

Я надеюсь, что это руководство помогло вам научиться использовать cURL, wget и formfind для заполнения веб-форм. Пожалуйста, дайте мне знать ваши результаты.

Исходный контент здесь опубликован в соответствии с этими условиями лицензии: X
Тип лицензии: Только чтение
Краткое содержание лицензии: Вы можете читать исходное содержимое в контексте, в котором он опубликован (по этому веб-адресу).Никакое другое копирование или использование не разрешается без письменного согласия автора.

Поделиться - это забота!

curl - Урок

Фон

Этот документ предполагает, что вы знакомы с HTML и общими сетями.

Растущее количество приложений, перемещающихся в Интернет, сделало «HTTP-сценарии» более часто запрашиваемыми и желательными. Сегодня важные задачи - иметь возможность автоматически извлекать информацию из Интернета, подделывать пользователей, публиковать или выгружать данные на веб-серверы.

Curl - это инструмент командной строки для выполнения всевозможных манипуляций с URL-адресами и их передачи, но в этом конкретном документе основное внимание будет уделено тому, как его использовать при выполнении HTTP-запросов для развлечения и получения прибыли. Я предполагаю, что вы знаете, как вызвать curl --help или curl --manual , чтобы получить основную информацию об этом.

Curl написан не для того, чтобы делать все за вас. Он делает запросы, он получает данные, он отправляет данные и извлекает информацию. Вероятно, вам нужно склеить все вместе, используя какой-то язык сценариев или повторяющиеся ручные вызовы.

Протокол HTTP

HTTP - это протокол, используемый для получения данных с веб-серверов. Это очень простой протокол, основанный на TCP / IP. Протокол также позволяет отправлять информацию на сервер от клиента, используя несколько различных методов, как будет показано здесь.

HTTP - это простые текстовые строки ASCII, отправляемые клиентом на сервер для запроса определенного действия, а затем сервер отвечает на несколько текстовых строк до того, как фактическое запрошенное содержимое будет отправлено клиенту.

Клиент curl отправляет HTTP-запрос. Запрос содержит метод (например, GET, POST, HEAD и т. Д.), Несколько заголовков запроса, а иногда и тело запроса. HTTP-сервер отвечает строкой состояния (указывающей, все ли прошло хорошо), заголовками ответа и, чаще всего, также телом ответа. «Тело» - это запрошенные вами простые данные, такие как фактический HTML, изображение и т. Д.

См. Протокол

Использование опции curl --verbose ( -v как короткая опция) покажет, какие команды curl отправляет на сервер, а также несколько других информационных текстов.

--verbose - самый полезный параметр, когда дело доходит до отладки или даже понимания взаимодействия curl <-> с сервером.

Иногда даже --verbose недостаточно. Затем --trace и --trace-ascii предлагают еще более подробную информацию, поскольку они показывают всего, что curl отправляет и получает. Используйте это так:

  curl --trace-ascii debugdump.txt http://www.example.com/
  

Посмотреть время

Часто вы можете задаться вопросом, что именно занимает все время, или просто хотите узнать количество миллисекунд между двумя точками передачи.В этих и других подобных ситуациях вам понадобится опция --trace-time . Он добавит время к каждой строке вывода трассировки:

  curl --trace-ascii d.txt --trace-time http://example.com/
  

См. Ответ

По умолчанию curl отправляет ответ на стандартный вывод. Вам нужно перенаправить его куда-нибудь, чтобы этого избежать, чаще всего это делается с помощью -o или -O .

Спецификация

Формат унифицированного указателя ресурсов - это то, как вы указываете адрес определенного ресурса в Интернете.Вы знаете, что вы видели такие URL-адреса, как https://curl.se или https://yourbank.com миллион раз. RFC 3986 - каноническая спецификация. И да, формальное имя - это не URL, а URI.

Хост

Имя хоста обычно преобразуется с помощью DNS или вашего файла / etc / hosts в IP-адрес, и именно с этим curl будет взаимодействовать. В качестве альтернативы вы можете указать IP-адрес непосредственно в URL-адресе вместо имени.

Для разработки и других пробных ситуаций вы можете указать в качестве имени хоста IP-адрес, отличный от того, который использовался бы в противном случае, с помощью параметра curl --resolve :

  curl --resolve www.example.org:80:127.0.0.1 http://www.example.org/
  

Номер порта

Каждый протокол, поддерживаемый curl, работает с номером порта по умолчанию, будь то TCP или, в некоторых случаях, UDP. Обычно вам не нужно это учитывать, но иногда вы запускаете тестовые серверы на других портах или аналогичных. Затем вы можете указать номер порта в URL-адресе с двоеточием и числом сразу после имени хоста. Как при использовании HTTP на порт 1234:

  curl http: //www.example.org: 1234 /
  

Номер порта, который вы указываете в URL-адресе, - это номер, который сервер использует для предоставления своих услуг. Иногда вы можете использовать локальный прокси, и тогда вам может потребоваться указать номер порта этого прокси отдельно для того, к чему curl необходимо подключиться локально. Как при использовании HTTP-прокси на порту 4321:

  curl --proxy http://proxy.example.org:4321 http://remote.example.org/
  

Имя пользователя и пароль

Некоторые службы настроены так, чтобы требовать аутентификацию HTTP, и затем вам необходимо указать имя и пароль, которые затем передаются на удаленный сайт различными способами в зависимости от конкретного используемого протокола аутентификации.

Вы можете либо указать пользователя и пароль в URL-адресе, либо указать их отдельно:

  curl http: // user: [email protected]/
  

или

  curl -u пользователь: пароль http://example.org/
  

Вы должны обратить внимание на то, что этот вид HTTP-аутентификации не является тем, что обычно делается и запрашивается пользовательскими веб-сайтами в наши дни. Вместо этого они, как правило, используют формы и файлы cookie.

Часть пути

Часть пути просто отправляется на сервер, чтобы запросить отправку связанного ответа.Путь - это то, что находится справа от косой черты, следующей за именем хоста и, возможно, номером порта.

ПОЛУЧИТЬ

Самый простой и наиболее распространенный запрос / операция, выполняемая с использованием HTTP, - это ПОЛУЧЕНИЕ URL-адреса. Сам URL-адрес может относиться к веб-странице, изображению или файлу. Клиент отправляет серверу запрос GET и получает запрошенный документ. Если вы запустите командную строку

  завиток https://curl.se
  

, вы получаете веб-страницу, возвращаемую в окно терминала.Весь HTML-документ, содержащийся в этом URL-адресе.

Все ответы HTTP содержат набор заголовков ответов, которые обычно скрыты, используйте параметр curl --include ( -i ), чтобы отобразить их, а также остальную часть документа.

ГОЛОВА

Вы можете запросить у удаленного сервера ТОЛЬКО заголовки, используя параметр --head ( -I ), который заставит curl выдать запрос HEAD. В некоторых особых случаях серверы отклоняют метод HEAD, в то время как другие все еще работают, что вызывает особенное раздражение.

Метод HEAD определен и сделан так, чтобы сервер возвращал заголовки точно так же, как это было бы для GET, но без тела. Это означает, что вы можете увидеть Content-Length: в заголовках ответа, но в ответе HEAD не должно быть фактического тела.

Несколько URL-адресов в одной командной строке

Одна командная строка curl может включать один или несколько URL-адресов. Самый распространенный случай - это, вероятно, просто использовать один, но вы можете указать любое количество URL-адресов.Да любой. Без ограничений. Затем вы будете получать запросы, повторяющиеся снова и снова для всех заданных URL.

Пример, отправьте два GET:

  curl http://url1.example.com http://url2.example.com
  

Если вы используете --data для POST к URL-адресу, использование нескольких URL-адресов означает, что вы отправляете тот же POST-запрос на все указанные URL-адреса.

Пример, отправьте два сообщения POST:

  curl --data name = curl http://url1.example.com http://url2.example.com
  

Несколько методов HTTP в одной командной строке

Иногда вам нужно работать с несколькими URL-адресами в одной командной строке и использовать для каждого разные методы HTTP.Для этого вам понравится опция --next . По сути, это разделитель, отделяющий несколько вариантов от следующих. Все URL-адреса до --next получат один и тот же метод и объединят все данные POST в один.

Когда curl достигает --next в командной строке, он как бы сбрасывает метод и данные POST и разрешает новый набор.

Возможно, лучше всего это показать на нескольких примерах. Чтобы отправить сначала HEAD, а затем GET:

  curl -I http: // example.com --next http://example.com
  

Чтобы сначала отправить POST, а затем GET:

  curl -d score = 10 http://example.com/post.cgi --next http://example.com/results.html
  

Формы объяснены

Формы

- это общий способ, с помощью которого веб-сайт может представить HTML-страницу с полями для ввода пользователем данных, а затем нажать какую-то кнопку «ОК» или «Отправить», чтобы получить эти данные, отправленные на сервер. Затем сервер обычно использует опубликованные данные, чтобы решить, как действовать.Подобно использованию введенных слов для поиска в базе данных или добавления информации в систему отслеживания ошибок, отображение введенного адреса на карте или использование информации в качестве приглашения для входа в систему, подтверждающего, что пользователю разрешено видеть, о чем идет речь. чтобы увидеть.

Конечно, на стороне сервера должна быть какая-то программа для приема данных, которые вы отправляете. Вы не можете просто изобрести что-то из воздуха.

ПОЛУЧИТЬ

Форма GET использует метод GET, как указано в HTML, например:

В вашем любимом браузере появится эта форма с текстовым полем для заполнения и кнопкой с надписью «ОК».Если вы введете «1905» и нажмете кнопку «ОК», ваш браузер создаст для вас новый URL-адрес. К URL-адресу будет добавлено junk.cgi? Birthyear = 1905 & press = OK , добавленное к части пути предыдущего URL-адреса.

Если исходная форма была видна на странице www.example.com/when/birth.html , вторая страница, которую вы получите, станет www.example.com/when/junk.cgi?birthyear=1905&press= ОК .

Большинство поисковых систем работают именно так.

Чтобы curl выполнял за вас сообщение формы GET, просто введите ожидаемый созданный URL:

  curl "http: // www.example.com/when/junk.cgi?birthyear=1905&press=OK "
  

ПОСТ

Метод GET заставляет все имена полей ввода отображаться в поле URL-адреса вашего браузера. Как правило, это хорошо, когда вы хотите иметь возможность добавить в закладки эту страницу с вашими данными, но это очевидный недостаток, если вы ввели секретную информацию в одно из полей или если есть большое количество полей, создающих очень длинные и нечитаемый URL.

Затем протокол HTTP предлагает метод POST.Таким образом, клиент отправляет данные, отделенные от URL-адреса, и поэтому вы не увидите их в поле URL-адреса.

Форма будет очень похожа на предыдущую:

И чтобы использовать curl для публикации этой формы с теми же заполненными данными, что и раньше, мы могли бы сделать это так:

  curl --data "Birthyear = 1905 & press =% 20OK% 20" http://www.example.com/when.cgi
  

Этот тип POST будет использовать Content-Type `application / x-www-form-urlencoded 'и является наиболее широко используемым типом POST.

Данные, которые вы отправляете на сервер, ДОЛЖНЫ быть уже правильно закодированы, curl не сделает этого за вас. Например, если вы хотите, чтобы данные содержали пробел, вам необходимо заменить это пространство на% 20 и т. Д. Несоблюдение этого требования, скорее всего, приведет к неправильному получению данных и их искажению.

Последние версии curl могут фактически кодировать данные POST для вас, например:

  curl --data-urlencode "name = Я Даниэль" http://www.example.com
  

Если вы повторите --data несколько раз в командной строке, curl объединит все заданные части данных и поместит символы и между каждым сегментом данных.

Загрузка файла POST

Еще в конце 1995 года они определили дополнительный способ отправки данных через HTTP. Это задокументировано в RFC 1867, поэтому этот метод иногда называют публикацией RFC1867.

Этот метод в основном разработан для лучшей поддержки загрузки файлов. Форма, которая позволяет пользователю загружать файл, может быть написана в HTML так:

Это ясно показывает, что Content-Type, который будет отправлен, - это multipart / form-data .

Чтобы отправить сообщение в такую ​​форму с помощью curl, введите командную строку, например:

  curl --form upload = @ localfilename --form press = OK [URL]
  

Скрытые поля

Очень распространенный способ передачи информации о состоянии между страницами приложениями на основе HTML - это добавление скрытых полей в формы.Скрытые поля уже заполнены, они не отображаются для пользователя и передаются, как и все остальные поля.

Аналогичный пример формы с одним видимым полем, одним скрытым полем и одной кнопкой отправки может выглядеть так:

Чтобы отправить это сообщение с помощью curl, вам не нужно думать о том, скрыты поля или нет. Для скручивания они все одинаковые:

  curl --data "Birthyear = 1905 & press = OK & person = daniel" [URL]
  

Определите, как выглядит POST

Когда вы собираетесь заполнить форму и отправить ее на сервер, используя curl вместо браузера, вы, конечно, очень заинтересованы в отправке POST точно так же, как это делает ваш браузер.

Легкий способ увидеть это - сохранить HTML-страницу с формой на локальном диске, изменить «метод» на GET и нажать кнопку отправки (вы также можете изменить URL-адрес действия, если хотите ).

После этого вы четко увидите, что данные добавляются к URL-адресу, разделенные знаком ? -буквенное обозначение, как предполагается в формах GET.

PUT

Возможно, лучший способ загрузить данные на HTTP-сервер - использовать PUT. С другой стороны, это, конечно, требует, чтобы кто-то поместил программу или сценарий на стороне сервера, который знает, как получить поток HTTP PUT.

Поместите файл на HTTP-сервер с помощью curl:

  curl - файл загрузки файла загрузки http://www.example.com/receive.cgi
  

Базовая проверка подлинности

HTTP-аутентификация

- это возможность сообщить серверу ваше имя пользователя и пароль, чтобы он мог подтвердить, что вам разрешено выполнять запрос, который вы делаете. Базовая аутентификация, используемая в HTTP (тип, который используется curl по умолчанию), основан на текстовом формате , что означает, что он отправляет имя пользователя и пароль только в слегка запутанном виде, но все же полностью читаемый любым, кто обнюхивает сеть между вами и удаленным компьютером. сервер.

Чтобы указать curl использовать пользователя и пароль для аутентификации:

  curl - имя пользователя: пароль http://www.example.com
  

Другая проверка подлинности

Для сайта может потребоваться другой метод аутентификации (проверьте заголовки, возвращаемые сервером), и тогда подходящими вариантами могут быть --ntlm , --digest , --negotiate или даже --anyauth . ты.

Аутентификация прокси

Иногда ваш HTTP-доступ доступен только через HTTP-прокси.Кажется, это особенно характерно для различных компаний. Прокси-сервер HTTP может потребовать своего собственного пользователя и пароля, чтобы клиент мог выйти в Интернет. Чтобы указать их с помощью curl, введите что-то вроде:

  curl --proxy-user proxyuser: proxypassword curl.se
  

Если ваш прокси-сервер требует, чтобы аутентификация выполнялась с использованием метода NTLM, используйте --proxy-ntlm , если требуется дайджест, используйте --proxy-digest .

Если вы используете любую из этих опций «пользователь + пароль», но опускаете часть пароля, curl запросит пароль в интерактивном режиме.

Скрытие учетных данных

Обратите внимание, что когда программа запущена, ее параметры могут быть видны при перечислении запущенных процессов системы. Таким образом, другие пользователи могут следить за вашими паролями, если вы передадите их в виде простых параметров командной строки. Есть способы обойти это.

Стоит отметить, что хотя именно так работает HTTP-аутентификация, очень многие веб-сайты не будут использовать эту концепцию, когда они предоставляют логины и т. Д. См. Главу Web Login ниже для более подробной информации.

Референт

HTTP-запрос может включать в себя поле «referer» (да, оно написано с ошибкой), которое может использоваться, чтобы определить, с какого URL-адреса клиент перешел на этот конкретный ресурс. Некоторые программы / скрипты проверяют поле referer запросов, чтобы убедиться, что оно не пришло с внешнего сайта или неизвестной страницы. Хотя это глупый способ проверить что-то, что так легко подделать, многие скрипты все же это делают. Используя curl, вы можете поместить все, что хотите, в поле referer и, таким образом, легче обмануть сервер, чтобы он обслужил ваш запрос.

Используйте curl, чтобы установить поле реферера с:

  curl --referer http: //www.example.come http://www.example.com
  

Пользовательский агент

Очень похоже на поле referer, все HTTP-запросы могут устанавливать поле User-Agent. Он указывает, какой пользовательский агент (клиент) используется. Многие приложения используют эту информацию, чтобы решить, как отображать страницы. Глупые веб-программисты пытаются сделать разные страницы для пользователей разных браузеров, чтобы они выглядели как можно лучше для их конкретных браузеров.Обычно они также выполняют различные виды javascript, vbscript и т. Д.

Иногда вы видите, что получение страницы с помощью curl не возвращает ту же страницу, которую вы видите при открытии страницы в своем браузере. Тогда вы знаете, что пора установить поле User Agent, чтобы заставить сервер думать, что вы один из тех браузеров.

Чтобы сделать curl похожим на Internet Explorer 5 в Windows 2000:

  curl --user-agent "Mozilla / 4.0 (совместимый; MSIE 5.01; Windows NT 5.0) "[URL]
  

Или почему бы не выглядеть так, будто вы используете Netscape 4.73 на старом Linux:

  curl --user-agent "Mozilla / 4.73 [en] (X11; U; Linux 2.2.15 i686)" [URL]
  

Перенаправляет

Когда ресурс запрашивается с сервера, ответ сервера может включать подсказку о том, куда браузер должен перейти дальше, чтобы найти эту страницу, или новую страницу, содержащую вновь сгенерированный вывод. Заголовок, который сообщает браузеру о перенаправлении, - . Местоположение: .

Curl не следует за заголовками Location: по умолчанию, а просто отображает такие страницы таким же образом, как и все ответы HTTP. Однако в нем есть опция, которая заставит его попытаться следовать за указателями Location: .

Чтобы сказать curl, чтобы он следил за местоположением:

  curl - расположение http://www.example.com
  

Если вы используете curl для POST на сайт, который немедленно перенаправляет вас на другую страницу, вы можете безопасно использовать --location ( -L ) и --data / --form вместе.curl будет использовать POST только в первом запросе, а затем вернется к GET в следующих операциях.

Другие перенаправления

Браузер обычно поддерживает как минимум два других способа перенаправления, которые не поддерживает curl: сначала html может содержать мета-тег обновления, который просит браузер загрузить определенный URL-адрес через заданное количество секунд, или он может использовать для этого javascript. .

Основы файлов cookie

Веб-браузеры осуществляют «контроль состояния на стороне клиента» с помощью файлов cookie.Файлы cookie - это просто имена со связанным содержимым. Файлы cookie отправляются клиенту сервером. Сервер сообщает клиенту, для какого пути и имени хоста он хочет, чтобы cookie был отправлен обратно, а также отправляет дату истечения срока и еще несколько свойств.

Когда клиент связывается с сервером с именем и путем, указанными ранее в полученном файле cookie, клиент отправляет файлы cookie и их содержимое на сервер, если, конечно, срок их действия не истек.

Многие приложения и серверы используют этот метод для соединения серии запросов в один логический сеанс.Чтобы иметь возможность использовать curl в таких случаях, мы должны иметь возможность записывать и отправлять файлы cookie так, как их ожидает веб-приложение. Точно так же с ними работают браузеры.

Варианты файлов cookie

Самый простой способ отправить несколько файлов cookie на сервер при получении страницы с помощью curl - это добавить их в командную строку, например:

  curl --cookie "name = Daniel" http://www.example.com
  

Файлы cookie отправляются как обычные заголовки HTTP. Это практично, поскольку позволяет curl записывать файлы cookie, просто записывая заголовки.Запишите файлы cookie с помощью curl, используя параметр --dump-header ( -D ), например:

  curl --dump-header headers_and_cookies http://www.example.com
  

(Обратите внимание, что параметр --cookie-jar , описанный ниже, является лучшим способом хранения файлов cookie.)

Curl имеет встроенный полнофункциональный движок синтаксического анализа файлов cookie, который можно использовать, если вы хотите повторно подключиться к серверу и использовать файлы cookie, которые были сохранены из предыдущего подключения (или вручную созданы вручную, чтобы обмануть сервер и заставить его поверить в то, что у вас был предыдущий связь).Чтобы использовать ранее сохраненные файлы cookie, вы запускаете curl, например:

  curl --cookie stored_cookies_in_file http://www.example.com
  
«Механизм cookie»

Curl включается, когда вы используете параметр --cookie . Если вы хотите, чтобы curl распознавал полученные файлы cookie, используйте --cookie с несуществующим файлом. Например, если вы хотите, чтобы curl понимал файлы cookie со страницы и следил за местоположением (и, таким образом, возможно, отправлял полученные файлы cookie), вы можете вызвать его следующим образом:

  curl --cookie nada - расположение http: // www.example.com
  

Curl имеет возможность читать и записывать файлы cookie, которые используют тот же формат файла, который когда-то использовали Netscape и Mozilla. Это удобный способ обмена файлами cookie между скриптами или вызовами. Переключатель --cookie ( -b ) автоматически определяет, является ли данный файл таким файлом cookie, и анализирует его, а с помощью параметра --cookie-jar ( -c ) вы делаете curl записывает новый файл cookie в конце операции:

  curl - печенье.txt --cookie-jar newcookies.txt http://www.example.com
  

HTTPS безопасен для HTTP

Есть несколько способов сделать безопасную передачу HTTP. Безусловно, наиболее распространенным протоколом для этого является так называемый HTTPS, HTTP через SSL. SSL шифрует все данные, которые отправляются и принимаются по сети, что затрудняет злоумышленникам слежку за конфиденциальной информацией.

SSL (или TLS, как называется последняя версия стандарта) предлагает массу расширенных функций, позволяющих обеспечить все те механизмы шифрования и ключевые механизмы инфраструктуры, которые требуются для шифрования HTTP.

Curl поддерживает зашифрованные выборки при создании с использованием библиотеки TLS, и его можно построить для использования одной из довольно большого набора библиотек - curl -V покажет, какой из них был создан для использования вашего curl (если есть!). Чтобы получить страницу с HTTPS-сервера, просто запустите curl, например:

  завиток https://secure.example.com
  

Сертификаты

В мире HTTPS вы используете сертификаты для подтверждения того, что вы тот, кем вы себя называете, в качестве дополнения к обычным паролям.Curl поддерживает сертификаты на стороне клиента. Все сертификаты заблокированы парольной фразой, которую необходимо ввести, прежде чем сертификат можно будет использовать в curl. Парольную фразу можно указать в командной строке или, если нет, ввести интерактивно, когда curl запрашивает ее. Используйте сертификат с curl на сервере HTTPS, например:

  curl --cert mycert.pem https://secure.example.com
  

curl также пытается проверить, является ли сервер тем, кем он является, путем проверки сертификата сервера по локально сохраненному пакету сертификатов CA.Отсутствие проверки приведет к тому, что curl отклонит соединение. Затем вы должны использовать --insecure ( -k ), если вы хотите указать curl, чтобы он игнорировал, что сервер не может быть проверен.

Подробнее о проверке сертификата сервера и пакетах сертификатов CA можно прочитать в документе SSLCERTS.

Иногда у вас может получиться собственное хранилище сертификатов CA, а затем вы можете указать curl использовать его для проверки сертификата сервера:

  curl --cacert ca-bundle.pem https://example.com/
  

Изменить метод и заголовки

Делая что-то необычное, вам может потребоваться добавить или изменить элементы одного запроса на завивание.

Например, вы можете изменить запрос POST на PROPFIND и отправить данные как Content-Type: text / xml (вместо Content-Type по умолчанию) следующим образом:

  curl --data "" --header "Content-Type: text / xml" --request PROPFIND example.com
  

Вы можете удалить заголовок по умолчанию, указав заголовок без содержимого.Как будто вы можете испортить запрос, отключив Host: header:

  curl --header "Хост:" http://www.example.com
  

Таким же образом можно добавлять заголовки. Вашему серверу может потребоваться заголовок Destination: , и вы можете добавить его:

  curl --header "Назначение: http: // нигде" http://example.com
  

Подробнее об измененных методах

Следует отметить, что curl самостоятельно выбирает, какие методы использовать, в зависимости от того, какое действие запрашивать. -d выполнит POST, -I выполнит HEAD и так далее. Если вы используете опцию --request / -X , вы можете изменить метод, который выбирает ключевое слово curl, но вы не измените поведение curl. Это означает, что если вы, например, используете -d «data» для выполнения POST, вы можете изменить метод на PROPFIND с -X , и curl все равно будет думать, что он отправляет POST. Вы можете изменить обычный GET на метод POST, просто добавив -X POST в командную строку, например:

  curl -X POST http: // example.org /
  

... но curl все равно будет думать и действовать так, как если бы он отправил GET, поэтому он не будет отправлять тело запроса и т. Д.

Некоторые приемы входа в систему

Хотя это не только связано с HTTP, но по-прежнему вызывает множество проблем у людей, так что вот краткое изложение того, как работает подавляющее большинство всех форм входа в систему и как войти в них с помощью curl.

Также можно отметить, что для того, чтобы сделать это правильно в автоматическом режиме, вам, безусловно, нужно будет создавать сценарии и выполнять несколько вызовов curl и т. Д.

Во-первых, серверы в основном используют файлы cookie для отслеживания состояния входа клиента в систему, поэтому вам нужно будет фиксировать файлы cookie, которые вы получаете в ответах. Затем многие сайты также устанавливают специальный файл cookie на странице входа (чтобы убедиться, что вы попали туда через их страницу входа), поэтому вы должны иметь привычку сначала получать страницу формы входа для захвата установленных там файлов cookie.

Некоторые веб-системы входа в систему содержат различное количество JavaScript, и иногда они используют такой код для установки или изменения содержимого файлов cookie.Возможно, они делают это, чтобы предотвратить запрограммированные входы в систему, как в этом руководстве описано, как ... В любом случае, если чтения кода недостаточно, чтобы позволить вам повторить поведение вручную, захват HTTP-запросов, выполняемых вашими браузерами, и анализ отправленных файлов cookie Обычно это рабочий метод, позволяющий решить, как сократить потребность в javascript.

В фактическом теге

для входа в систему многие сайты заполняют случайные / сеансные или иным образом секретно сгенерированные скрытые теги, и вам может потребоваться сначала захватить HTML-код для формы входа и извлечь все скрытые поля, чтобы иметь возможность выполнить правильный вход в систему POST.Помните, что содержимое должно быть закодировано в URL-адресе при отправке в обычном режиме POST.

Некоторые приемы отладки

Много раз, когда вы запускаете curl на сайте, вы замечаете, что этот сайт не реагирует на ваши запросы curl так же, как на запросы вашего браузера.

Затем вам нужно начать делать ваши запросы curl более похожими на запросы вашего браузера:

  • Используйте параметр --trace-ascii для хранения полностью подробных журналов запросов для облегчения анализа и лучшего понимания

  • Убедитесь, что вы проверяете и используете файлы cookie при необходимости (как чтение с помощью --cookie , так и запись с помощью --cookie-jar )

  • Установите пользовательский агент (с -A ) на один, как в недавнем популярном браузере

  • Установить реферер (с -E ) так же, как и в браузере

  • Если вы используете POST, убедитесь, что вы отправляете все поля и в том же порядке, что и браузер.

Проверьте, что делают браузеры

Очень хороший помощник, чтобы убедиться, что вы все делаете правильно, - это инструменты разработчика веб-браузеров, которые позволяют просматривать все отправляемые и получаемые заголовки (даже при использовании HTTPS).

Более грубый подход - захватить HTTP-трафик в сети с помощью таких инструментов, как Wireshark или tcpdump, и проверить, какие заголовки были отправлены и получены браузером. (HTTPS заставляет вас использовать для этого SSLKEYLOGFILE .)

POST Form Data с cURL

cURL - это волшебная утилита, которая позволяет разработчикам загружать содержимое URL-адресов, исследовать заголовки ответов, получать котировки акций, подтверждать работу нашей кодировки GZip и многое другое.Еще одно отличное использование cUrl для командной строки - это отправка данных формы на сервер, особенно при тестировании средней и расширенной обработки форм. И, как и другие команды cURL, данные формы POSTing невероятно просты.

Публикация данных формы с помощью cURL

Запустите команду cURL с curl -X POST , а затем добавьте -F для каждого поля = значение , которое вы хотите добавить в POST:

curl -X POST -F 'username = davidwalsh' -F 'password = something' http: // domain.tld / post-to-me.php
 

Если вы использовали PHP, вы могли бы использовать print_r в переменной $ _POST , чтобы увидеть, что ваш сервер получил данные POST, как ожидалось:

Множество(
  'username' => 'davidwalsh',
  'пароль' => 'что-то'
)
 

Если вам нужно отправить определенный тип данных или заголовок с помощью cURL, используйте -H для добавления заголовка:

# -d для отправки сырых данных
curl -X POST -H 'Content-Type: application / json' -d '{"username": "davidwalsh", "password": "something"}' http: // domain.tld / логин
 

Публикация файлов с помощью cURL

Публикация файла с помощью cURL немного отличается тем, что вам нужно добавить @ перед местоположением файла после имени поля:

curl -X POST -F '[email protected]/path/to/pictures/picture.jpg' http: //domain.tld/upload
 

Использование PHP для исследования массива переменных $ _FILES покажет данные файла, как если бы они были загружены через форму в браузере:

Множество(
  "изображение": массив (
    "name" => "изображение.jpg "
    "type" => "image / jpeg",
    "tmp_name" => "/ путь / на / сервере / к / tmp / phprj5rkG",
    "error" => 0,
    "size" => 174476
  )
)
 

Публикация содержимого файла с помощью cURL, наверное, проще, чем вы думали, не так ли?

В первый раз, когда мне понадобились данные POST-файла из командной строки, я подумал, что меня ждет драка; вместо этого я обнаружил, что cURL упростил процесс!

Что такое команды Curl в Linux? Полное руководство с примерами.

Что такое команда Curl? Эта команда доступна в большинстве систем на базе Unix. Это сокращение от «URL-адрес клиента». Команды Curl предназначены для проверки возможности подключения к URL-адресам и в качестве отличного инструмента для передачи данных. Давайте узнаем, как вы можете начать его использовать.

Команда

Curl поддерживает следующий список протоколов:

  • HTTP и HTTPS
  • FTP и FTPS
  • IMAP и IMAPS
  • POP3 и POP3S
  • SMB и SMBS
  • SFTP
  • SCP
  • ТЕЛНЕТ
  • GOPHER
  • LDAP и LDAPS
  • SMTP и SMTPS

Это наиболее важные поддерживаемые протоколы, но есть и другие.Curl работает на libcurl, бесплатной библиотеке передачи URL-адресов на стороне клиента.

Проверить версию Curl

Прежде чем мы начнем работать с Curl, нам нужно войти в наш VPS. Если вам нужна помощь, ознакомьтесь с этим руководством по SSH.

Сначала давайте проверим, какая версия Curl доступна, с помощью следующей команды:

 curl - версия 

В выходных данных для версии Curl будет показан список поддерживаемых протоколов. Теперь мы можем взглянуть на некоторые примеры команды Curl

.

Базовый синтаксис команды Curl

Давайте узнаем, как использовать команды Curl.Базовый синтаксис Curl выглядит так:

 curl [ОПЦИИ] [URL] 

Самым простым способом использования Curl является отображение содержимого страницы. В приведенном ниже примере будет отображаться домашняя веб-страница testdomain.com .

 curl testdomain.com 

Это отобразит полный исходный код домашней страницы для домена. Если протокол не указан, curl интерпретирует это как HTTP.

Параметры командного файла Curl

Команды

Curl могут загружать файлы из удаленного места.Сделать это можно двумя способами:

  • -O сохранит файл в текущем рабочем каталоге с тем же именем, что и удаленный.
  • -o позволяет указать другое имя или расположение файла

Пример этого показан ниже:

 завиток -O http://testdomain.com/testfile.tar.gz 

Приведенная выше команда сохранит это как testfile.tar.gz .

 curl -o newtestfile.tar.gz http: // testdomain.com / testfile.tar.gz 

Приведенная выше команда сохранит это как newtestfile.tar.gz .

Если по какой-то причине загрузка прервалась, вы можете возобновить ее с помощью curl. Вы можете сделать это с помощью следующей команды:

 завиток -C - -O http://testdomain.com/testfile.tar.gz 

Используя curl, мы также можем загрузить несколько файлов, как показано ниже:

 curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz 

Если вы хотите загрузить несколько файлов с нескольких URL-адресов, перечислите их все в файле.Команды Curl можно комбинировать с xargs для загрузки различных URL-адресов.

Например, если у нас есть файл allUrls.txt , который содержит список всех URL-адресов для загрузки, то приведенный ниже пример можно использовать для загрузки всех файлов.

 xargs –n 1 curl -O 

Команды Curl для Http

Curl также можно использовать при наличии прокси-сервера. Если вы находитесь за прокси-сервером, который прослушивает порт 8090 на сайте sampleproxy.com, загрузите файлы, как показано ниже:

 curl -x sampleproxy.com: 8090 -U имя пользователя: пароль -O http: // testdomain.com/testfile.tar.gz 

В приведенном выше примере вы можете пропустить -U имя пользователя: пароль , если прокси-сервер не требует метода аутентификации.

Типичный HTTP-запрос всегда будет содержать заголовок. Заголовок HTTP отправляет дополнительную информацию об удаленном веб-сервере вместе с фактическим запросом. Хотя с помощью инструментов разработчика браузера вы можете проверить информацию заголовка, вы можете проверить ее с помощью команды curl.

Ниже приведен пример получения информации заголовка с веб-сайта.

 curl -I www.testdomain.com 

Используя curl, вы можете сделать запросы GET и POST . Запрос GET будет иметь следующий вид:

 завиток http://mydomain.com 

Пример запроса POST будет выглядеть следующим образом:

 curl –data «text = Hello» https://myDomain.com/firstPage.jsp 

Здесь text = Hello - это параметр запроса POST.Это поведение было бы похоже на HTML-формы.

Вы также можете указать несколько методов HTTP в одной команде curl. Сделайте это, используя опцию –следующий , например:

 curl –data «text = Hello» https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp 

Содержит запрос POST, за которым следует запрос GET.

Каждый HTTP-запрос будет иметь пользовательский агент, который отправляется как часть запроса. Это указывает на сведения о веб-браузере клиента.По умолчанию запрос curl содержит завиток и номер версии в качестве деталей пользовательского агента. Пример вывода показан ниже:

 «GET / HTTP / 1.1» 200 «_» »curl / 7/29/0» 

Вы можете изменить эту информацию пользовательского агента по умолчанию, используя следующую команду:

 curl -I http://mydomain.com –-user-agent «Мой новый браузер» 

Теперь измененный вывод будет:

 «GET / HTTP / 1.1» 200 «_» «Мой новый браузер» 

Curl для файлов cookie

Команды

Curl можно использовать для проверки того, какие файлы cookie загружаются по любому URL-адресу.Итак, если вы обращаетесь к https://www.samplewebsite.com , вы можете выводить данные в файл, сохранять файлы cookie и получать к ним доступ с помощью cat или редактора VIM.

Ниже приведен пример такой команды:

 curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O 

Аналогичным образом, если у вас есть файлы cookie в файле, вы можете отправить его на веб-сайт. Пример такой команды показан ниже:

 curl --cookie Mycookies.txt https: // www. образец веб-сайта.com 

Curl для FTP

Команда Curl поддерживает FTP! Вы можете использовать их для загрузки файлов с удаленного сервера.

 curl -u имя пользователя: пароль -O ftp: //sampleftpserver/testfile.tar.gz 

В приведенной выше команде ftp: // sampleftpserver - это FTP-сервер, который принимает соединения. Имя пользователя и пароль можно пропустить для анонимных FTP-подключений. Введите команду и наблюдайте, как заполняется индикатор выполнения.

Вы также можете загружать файлы с помощью следующей команды:

 curl -u имя пользователя: пароль -T testfile.tar.gz ftp: // sampleftpserver 

Опять же, мы можем пропустить имя пользователя и пароль для анонимных FTP-соединений.

Ограничение выхода изгиба

При использовании локона вы не можете знать, насколько большим будет результат. Вы можете ограничить пропускную способность, чтобы убедиться, что она не ограничивается curl.

Следующая команда ограничивает полосу пропускания до 100 КБ:

 curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O 

Заключение

Curl - мощная и широко используемая команда.Это полезно, когда вы зависите от командной строки. Он имеет несколько опций и поддерживает несколько протоколов. Это отличная причина изучить эту команду!

Помните, если вы хотите изучить некоторые расширенные команды, просто обратитесь к руководству, которое должно быть во всех версиях Unix:

 человек изгиб 

Мы надеемся, что этот урок стал для вас хорошей отправной точкой для использования Curl! Как вы будете использовать эту команду? Дайте нам знать об этом в комментариях!

Эдвард - коммуникатор с многолетним опытом работы в ИТ в качестве писателя, маркетолога и энтузиаста Linux.Информационные технологии - это основа его жизни, личной и профессиональной. Цель Эдварда - вдохновить миллионы людей на успешное присутствие в Интернете. Еще он очень любит собак, гитары и все, что связано с космосом.

Справочная страница

curl

справочная страница curl

НАЗВАНИЕ

curl - передать URL

ОБЗОР

curl [параметры] [URL ...]

ОПИСАНИЕ

curl - это инструмент для передачи данных с сервера или на сервер с использованием одного из поддерживаемых протоколов (HTTP, HTTPS, FTP, FTPS, GOPHER, DICT, TELNET, LDAP или FILE).Команда предназначена для работы без взаимодействия с пользователем.

curl предлагает множество полезных трюков, таких как поддержка прокси, аутентификация пользователей, загрузка ftp, HTTP-сообщения, соединения SSL (https :), файлы cookie, возобновление передачи файлов и многое другое. Как вы увидите ниже, от количества функций у вас закружится голова!

curl поддерживается libcurl для всех функций, связанных с передачей данных. За подробностями обращайтесь к libcurl (3).

URL

Синтаксис URL зависит от протокола. Вы найдете подробное описание в RFC 2396.

Вы можете указать несколько URL-адресов или частей URL-адресов, написав наборы частей в фигурных скобках, как в:

http: // site. {One, two, three} .com

или вы можете получить последовательности буквенно-цифровых серий, используя [] как в:

ftp://ftp.numericals.com/file[1-100 impression.txt ftp://ftp.numericals.com/file[001-100estive.txt (с ведущими нулями) ftp: //ftp.letters .com / файл [az] .txt

На данный момент вложение последовательностей не поддерживается:

http://www.any.org/archive[1996–1999–/volume[1–4 visiblepart{a,b,c,index}.html

Вы можете указать любое количество URL-адресов в командной строке. Они будут извлекаться последовательно в указанном порядке.

Curl будет пытаться повторно использовать соединения для передачи нескольких файлов, поэтому получение большого количества файлов с одного сервера не приведет к многократным соединениям / рукопожатиям. Это увеличивает скорость. Конечно, это делается только для файлов, указанных в одной командной строке, и не может использоваться между отдельными вызовами curl.

ОПЦИИ

-a / - добавить

(FTP) При использовании при загрузке по FTP это указывает curl на добавление к целевому файлу вместо его перезаписи.Если файл не существует, он будет создан.

Если этот параметр используется дважды, второй снова отключит режим добавления.

-A / - user-agent <строка агента>

(HTTP) Укажите строку User-Agent для отправки на HTTP-сервер. Некоторые плохо выполненные CGI терпят неудачу, если не установлено значение «Mozilla / 4.0». Чтобы закодировать пробелы в строке, заключите строку в одинарные кавычки. Конечно, это также можно установить с помощью параметра заголовка -H / -.

Если этот параметр установлен более одного раза, последний будет использован.

--аньяут

(HTTP) Указывает curl самостоятельно определить метод аутентификации и использовать наиболее безопасный из тех, которые, по утверждению удаленного сайта, он поддерживает. Для этого сначала выполняется запрос и проверяются заголовки ответов, что вызывает дополнительный круговой обход сети. Это используется вместо установки определенного метода аутентификации, который вы можете сделать с помощью --basic, --digest, --ntlm и --negotiate. (Добавлено в 7.10.6)

Если этот параметр используется несколько раз, следующие события не имеют значения.

-b / - cookie

(HTTP) Передайте данные на HTTP-сервер в виде файла cookie. Предположительно это данные, ранее полученные от сервера в строке «Set-Cookie:». Данные должны быть в формате «ИМЯ1 = ЗНАЧЕНИЕ1; ИМЯ2 = ЗНАЧЕНИЕ2».

Если в строке не используется буква «=», она рассматривается как имя файла для чтения из ранее сохраненных строк cookie, которые должны использоваться в этом сеансе, если они совпадают. Использование этого метода также активирует «синтаксический анализатор файлов cookie», который также будет создавать входящие файлы cookie для записи curl, что может быть удобно, если вы используете его в сочетании с параметром -L / - location.Формат файла для чтения файлов cookie должен быть простым заголовком HTTP или форматом файла cookie Netscape / Mozilla.

ПРИМЕЧАНИЕ, что файл, указанный с помощью -b / - cookie, используется только как входной. Файлы cookie не будут храниться в файле. Для хранения файлов cookie используйте параметр -c / - cookie-jar или даже можете сохранить заголовки HTTP в файл с помощью -D / - dump-header!

Если этот параметр установлен более одного раза, последний будет использован.

-B / - использование ascii

Используйте передачу ASCII при получении файла FTP или информации LDAP.Для FTP это также можно обеспечить, используя URL-адрес, заканчивающийся на "; type = A". Эта опция приводит к тому, что данные, отправляемые на стандартный вывод, находятся в текстовом режиме для систем win32.

Если этот параметр используется дважды, второй отключит использование ASCII.

- основной

(HTTP) Указывает curl использовать базовую аутентификацию HTTP. Это значение по умолчанию, и эта опция обычно бессмысленна, если вы не используете ее для переопределения ранее установленной опции, которая устанавливает другой метод аутентификации (например, --ntlm, --digest и --negotiate).(Добавлено в 7.10.6)

Если этот параметр используется несколько раз, следующие события не имеют значения.

--ciphers <список шифров>

(SSL) Определяет, какие шифры использовать в соединении. Список шифров должен использовать действительные шифры. Прочтите подробные сведения о списке шифров SSL по этому URL-адресу: http://www.openssl.org/docs/apps/ciphers.html

Если этот параметр используется несколько раз, последний будет иметь приоритет над другими.

- сжатый

(HTTP) Запросить сжатый ответ, используя один из алгоритмов, поддерживаемых libcurl, и вернуть несжатый документ.Если этот параметр используется и сервер отправляет неподдерживаемую кодировку, Curl сообщит об ошибке.

Если эта опция используется несколько раз, каждое событие будет включать / выключать ее.

- тайм-аут соединения <секунды>

Максимальное время в секундах, в течение которого вы разрешаете соединение с сервером. Это ограничивает только фазу подключения, после подключения curl эта опция больше не используется. См. Также параметр --max-time.

Если эта опция используется несколько раз, будет использован последний.

-c / - cookie-jar <имя файла>

Укажите, в какой файл вы хотите, чтобы curl записывал все куки после завершения операции. Curl записывает все файлы cookie, ранее считанные из указанного файла, а также все файлы cookie, полученные с удаленных серверов. Если файлы cookie неизвестны, файл не будет записан. Файл будет записан с использованием формата файлов cookie Netscape. Если вы установите для имени файла одно тире «-», файлы cookie будут записаны в стандартный вывод.

ПРИМЕЧАНИЕ Если невозможно создать или записать файл cookie, вся операция curl не завершится ошибкой или даже не сообщит об ошибке.Использование -v приведет к отображению предупреждения, но это единственная видимая обратная связь, которую вы получите об этой потенциально смертельной ситуации.

Если эта опция используется несколько раз, будет использоваться последнее указанное имя файла.

-C / - continue-at <смещение>

Продолжить / возобновить предыдущую передачу файла с заданным смещением. Данное смещение - это точное количество байтов, которые будут пропущены, считая от начала исходного файла до его передачи в место назначения. Если используется с загрузкой, команда SIZE ftp-сервера не будет использоваться curl.

Используйте «-C -», чтобы указать curl, чтобы он автоматически определял, где и как возобновить передачу. Затем он использует данные файлы вывода / ввода, чтобы выяснить это.

Если эта опция используется несколько раз, будет использован последний.

- создать каталог

При использовании вместе с параметром -o curl при необходимости создаст необходимую иерархию локальных каталогов.

--crlf

(FTP) Преобразование LF в CRLF при загрузке. Полезно для MVS (OS / 390).

Если эта опция используется дважды, вторая снова отключит преобразование crlf.

-d / - data <данные>

(HTTP) Отправляет указанные данные в запросе POST на сервер HTTP способом, который может имитировать, как если бы пользователь заполнил HTML-форму и нажал кнопку отправки. Обратите внимание, что данные отправляются точно так, как указано, без дополнительной обработки (с обрезанными символами новой строки). Ожидается, что данные будут & zerosp; "закодированы по URL". Это приведет к тому, что curl будет передавать данные на сервер, используя application-type application / x-www-form-urlencoded. Сравните с формой -F / -.Если этот параметр используется более одного раза в одной командной строке, указанные фрагменты данных будут объединены вместе с разделительным символом &. Таким образом, при использовании '-d name = daniel -d skill = lousy' будет сгенерирован блок сообщения, который выглядит как & zerosp; 'name = daniel & skill = lousy'.

Если вы начинаете данные с буквы @, остальное должно быть именем файла, из которого будут считываться данные, или - если вы хотите, чтобы curl читал данные из stdin. Содержимое файла уже должно быть закодировано по URL. Также можно указать несколько файлов.Таким образом, отправка данных из файла с именем 'foobar' будет выполняться с помощью --data @foobar ".

Чтобы публиковать данные в чисто двоичном формате, вы должны вместо этого использовать параметр --data-binary.

-d / - данные такие же, как --data-ascii.

Если этот параметр используется несколько раз, данные, следующие за первым, будут добавлены.

--data-ascii <данные>

(HTTP) Это псевдоним для опции -d / - data.

Если этот параметр используется несколько раз, данные, следующие за первым, будут добавлены.

--data-binary <данные>

(HTTP) Публикует данные аналогично --data-ascii, хотя при использовании этой опции весь контекст опубликованных данных сохраняется как есть. Если вы хотите опубликовать двоичный файл без функции strip-newlines параметра --data-ascii, это для вас.

Если этот параметр используется несколько раз, данные, следующие за первым, будут добавлены.

- дайджест

(HTTP) Включает дайджест-аутентификацию HTTP.Это проверка подлинности, которая предотвращает отправку пароля по сети в виде открытого текста. Используйте это в сочетании с обычной опцией -u / - user для установки имени пользователя и пароля. См. Также параметры --ntlm, --negotiate и --anyauth. (Добавлено в curl 7.10.6)

Если этот параметр используется несколько раз, следующие события не имеют значения.

- отключение-эпрт

(FTP) Укажите curl, чтобы отключить использование команд EPRT и LPRT при выполнении активных передач FTP.Обычно Curl всегда сначала пытается использовать EPRT, а затем LPRT перед использованием PORT, но с этой опцией он сразу же будет использовать PORT. EPRT и LPRT являются расширениями исходного протокола FTP, могут работать не на всех серверах, но обеспечивают большую функциональность лучше, чем традиционная команда PORT. (Добавлено в 7.10.5)

Если эта опция используется несколько раз, каждое событие будет включать / выключать ее.

- отключение-epsv

(FTP) Укажите curl, чтобы отключить использование команды EPSV при выполнении пассивных передач FTP.Обычно Curl всегда сначала пытается использовать EPSV перед PASV, но с этой опцией он не будет пытаться использовать EPSV.

Если эта опция используется несколько раз, каждое событие будет включать / выключать ее.

-D / - дамп-заголовок <файл>

Записать заголовки протокола в указанный файл.

Эту опцию удобно использовать, если вы хотите сохранить заголовки, которые отправляет вам сайт HTTP. Файлы cookie из заголовков могут быть прочитаны во втором вызове curl с помощью параметра -b / - cookie! Однако параметр -c / - cookie-jar - лучший способ хранить файлы cookie.

При использовании на FTP строки ответа ftp-сервера считаются «заголовками» и поэтому сохраняются там.

Если эта опция используется несколько раз, будет использован последний.

-e / - referer

(HTTP) Отправляет информацию «Referer Page» на HTTP-сервер. Конечно, это также можно установить с помощью флага заголовка -H / -. При использовании с -L / - location вы можете добавить "; auto" к URL-адресу ссылки, чтобы curl автоматически устанавливал предыдущий URL-адрес, когда он следует за заголовком Location :.Строку «; auto» можно использовать отдельно, даже если вы не устанавливаете начальный референт.

Если эта опция используется несколько раз, будет использован последний.

- Окружающая среда

(ТОЛЬКО ОС RISC) Устанавливает диапазон переменных среды, используя имена, поддерживаемые параметром -w, чтобы упростить извлечение полезной информации после запуска curl.

Если эта опция используется несколько раз, каждое событие будет включать / выключать ее.

--egd-file <файл>

(HTTPS) Укажите путь к сокету Entropy Gathering Daemon.Сокет используется для заполнения случайного механизма для SSL-соединений. См. Также параметр --random-file.

-E / - cert <сертификат [: пароль]>

(HTTPS) Указывает curl использовать указанный файл сертификата при получении файла с HTTPS. Сертификат должен быть в формате PEM. Если необязательный пароль не указан, он будет запрошен на терминале. Обратите внимание, что этот сертификат - это закрытый ключ и объединенные частный сертификат!

Если эта опция используется несколько раз, будет использован последний.

--сертификационный <тип>

(SSL) Сообщает curl, в каком типе сертификата находится предоставленный сертификат. PEM, DER и ENG являются распознаваемыми типами.

Если эта опция используется несколько раз, будет использован последний.

--cacert <сертификат CA>

(HTTPS) Указывает curl использовать указанный файл сертификата для проверки однорангового узла. Файл может содержать несколько сертификатов CA. Сертификат (ы) должен быть в формате PEM.

curl распознает переменную среды с именем «CURL_CA_BUNDLE», если она установлена, и использует данный путь в качестве пути к пакету сертификатов CA.Эта опция переопределяет эту переменную.

Версия curl для Windows будет автоматически искать файл сертификатов CA с именем ´curl-ca-bundle.crt´ либо в том же каталоге, что и curl.exe, либо в текущем рабочем каталоге, либо в любой папке по пути PATH .

Если эта опция используется несколько раз, будет использован последний.

--capath <каталог сертификатов CA>

(HTTPS) Указывает curl использовать указанный каталог сертификатов для проверки однорангового узла. Сертификаты должны быть в формате PEM, а каталог должен быть обработан с помощью утилиты c_rehash, поставляемой с openssl.Использование --capath может позволить curl намного эффективнее устанавливать https-соединения, чем использование --cacert, если файл --cacert содержит много сертификатов CA.

Если эта опция используется несколько раз, будет использован последний.

-f / - сбой

(HTTP) Отказ без вывода сообщений при ошибках сервера. В основном это делается так, чтобы лучше задействовать скрипты и т. Д., Чтобы лучше справляться с неудачными попытками. В обычных случаях, когда HTTP-сервер не может доставить документ, он возвращает HTML-документ с указанием этого (который часто также описывает причину и многое другое).Этот флаг не позволит curl выводить это и вместо этого тихо завершит работу.

Если этот параметр используется дважды, второй снова отключит тихий сбой.

--ftp-create-dirs

(FTP) Когда URL-адрес FTP / операция использует путь, который в настоящее время не существует на сервере, стандартное поведение curl - сбой. Используя эту опцию, curl вместо этого попытается создать отсутствующие каталоги. (Добавлено в 7.10.7)

Если этот параметр используется дважды, второй снова отключит тихий сбой.

--ftp-pasv

(FTP) Используйте PASV при передаче. PASV - это внутреннее поведение по умолчанию, но с помощью этой опции можно переопределить предыдущую опцию --ftp-port. (Добавлено в 7.11.0)

Если этот параметр используется дважды, второй снова отключит тихий сбой.

--ftp-ssl

(FTP) Переключите FTP-соединение на использование SSL / TLS. (Добавлено в 7.11.0)

Если этот параметр используется дважды, второй снова отключит тихий сбой.

-F / - форма

(HTTP) Это позволяет curl имитировать заполненную форму, в которой пользователь нажал кнопку отправки.Это вызывает свертывание данных POST с использованием данных типа содержимого multipart / form-data в соответствии с RFC1867. Это позволяет загружать двоичные файлы и т. Д. Чтобы заставить часть «содержимого» быть файлом, поставьте перед именем файла знак @. Чтобы просто получить часть содержимого из файла, поставьте перед именем файла букву <. Разница между @ и <заключается в том, что @ заставляет файл прикрепляться к сообщению в виде загрузки файла, в то время как <создает текстовое поле и просто получает содержимое этого текстового поля из файла.

Пример, чтобы отправить файл паролей на сервер, где & zerosp; 'пароль' - это имя поля формы, в которое / etc / passwd будет входить:

curl -F пароль = @ / etc / passwd www.mypasswords.com

Чтобы прочитать содержимое файла из стандартного ввода файла, используйте - там, где должно было быть имя файла. Это касается как конструкций @, так и <.

Вы также можете указать curl, какой Content-Type использовать для части загрузки файла, используя 'type =', примерно так:

curl -F "web = @ index.html; type = text / html "url.com

См. Другие примеры и подробности в РУКОВОДСТВЕ.

Эту опцию можно использовать несколько раз.

-г / - глобофф

Эта опция отключает "синтаксический анализатор подстановки URL". Когда вы устанавливаете этот параметр, вы можете указывать URL-адреса, содержащие буквы {} [], не интерпретируя их самим curl. Обратите внимание, что эти буквы не являются обычным допустимым содержимым URL-адреса, но они должны быть закодированы в соответствии со стандартом URI.

-Г / - получить

При использовании этой опции все данные, указанные с помощью -d / - data или --data-binary, будут использоваться в запросе HTTP GET вместо запроса POST, который в противном случае использовался бы.Данные будут добавлены к URL-адресу с помощью символа '?' разделитель.

При использовании в сочетании с -I данные POST вместо этого будут добавлены к URL-адресу с запросом HEAD.

При многократном использовании ничего особенного не происходит.

-h / - справка

Справка по использованию.

-H / - заголовок <заголовок>

(HTTP) Дополнительный заголовок для использования при получении веб-страницы. Вы можете указать любое количество дополнительных заголовков. Обратите внимание, что если вы должны добавить настраиваемый заголовок с тем же именем, что и один из внутренних, который будет использовать curl, ваш внешний заголовок будет использоваться вместо внутреннего.Это позволяет делать даже более сложные вещи, чем обычно делает curl. Вы не должны заменять установленные внутри заголовки, не зная точно, что вы делаете. Замена внутреннего заголовка на заголовок без содержимого в правой части двоеточия предотвратит появление этого заголовка.

См. Также параметры -A / - user-agent и -e / - referer.

Этот параметр можно использовать несколько раз для добавления / замены / удаления нескольких заголовков.

-i / - включать

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

Если этот параметр используется дважды, второй снова отключит включение заголовка.

- интерфейс <имя>

Выполнение операции с использованием указанного интерфейса. Вы можете ввести имя интерфейса, IP-адрес или имя хоста. Пример может выглядеть так:

curl - интерфейс eth0: 1 http://www.netscape.com/

Если эта опция используется несколько раз, будет использован последний.

-И / - головка

(HTTP / FTP / FILE) Получить только HTTP-заголовок! HTTP-серверы имеют команду HEAD, которая используется для получения ничего, кроме заголовка документа. При использовании с файлом FTP или FILE curl отображает только размер файла и время последнего изменения.

Если этот параметр используется дважды, второй снова отключит только заголовок.

-j / - куки-файлы нежелательной сессии

(HTTP) Когда curl получает указание читать куки из данного файла, эта опция заставит его отбросить все «сессионные куки».Это будет иметь такой же эффект, как если бы был запущен новый сеанс. Типичные браузеры всегда сбрасывают файлы cookie сеанса при закрытии. (Добавлено в 7.9.7)

Если эта опция используется несколько раз, каждое событие будет включать / выключать ее.

-k / - небезопасный

(SSL) Эта опция явно позволяет curl выполнять «незащищенные» SSL-соединения и передачи. Начиная с curl 7.10, все SSL-соединения будут пытаться сделать безопасными с помощью пакета сертификатов CA, установленного по умолчанию.Это приводит к тому, что все соединения, считающиеся "небезопасными", не работают, если не используется -k / - insecure.

Если эта опция используется дважды, второй раз снова отключит ее.

- клавиша <клавиша>

(SSL) Имя файла закрытого ключа. Позволяет указать свой закрытый ключ в этом отдельном файле.

Если эта опция используется несколько раз, будет использован последний.

- тип ключа <тип>

(SSL) Тип файла закрытого ключа. Укажите тип закрытого ключа, предоставленного вашим ключом.Поддерживаются DER, PEM и ENG.

Если эта опция используется несколько раз, будет использован последний.

--krb4 <уровень>

(FTP) Включить аутентификацию и использование kerberos4. Необходимо ввести уровень, который должен быть одним из следующих: «ясно», «безопасно», «конфиденциально» или «конфиденциально». Если вы используете уровень, которого нет, вместо этого будет использоваться «частный».

Эта опция требует, чтобы библиотека была собрана с поддержкой kerberos4. Это не очень распространено. Используйте -V / - version, чтобы узнать, поддерживает ли это ваш curl.

Если эта опция используется несколько раз, будет использован последний.

-K / - config <файл конфигурации>

Укажите, из какого файла конфигурации читать аргументы curl. Файл конфигурации - это текстовый файл, в который можно записать аргументы командной строки, которые затем будут использоваться, как если бы они были записаны в самой командной строке. Параметры и их параметры должны быть указаны в одной строке файла конфигурации. Если параметр должен содержать пробелы, параметр должен быть заключен в кавычки.Если первый столбец строки конфигурации представляет собой символ '#', остальная часть строки будет рассматриваться как комментарий.

Укажите имя файла как «-», чтобы программа curl считывала файл со стандартного ввода.

Обратите внимание, что для того, чтобы указать URL-адрес в файле конфигурации, вам необходимо указать его с помощью параметра --url, а не просто записать URL-адрес в отдельной строке. Итак, это может выглядеть примерно так:

url = "http://curl.haxx.se/docs/"

Эту опцию можно использовать несколько раз.

- предельная скорость <скорость>

Укажите максимальную скорость передачи, которую вы хотите использовать для curl. Эта функция полезна, если у вас ограниченный канал и вы не хотите, чтобы при передаче использовалась вся ваша пропускная способность.

Данная скорость измеряется в байтах в секунду, если не добавлен суффикс. Добавление «k» или «K» приведет к подсчету числа в килобайтах, «m» или «M» - в мегабайтах, а «g» или «G» - в гигабайтах. Примеры: 200К, 3м и 1Гб.

Если вы также используете параметр -Y / - ограничения скорости, этот параметр будет иметь приоритет и может немного нарушить ограничение скорости, чтобы помочь сохранить работающую логику ограничения скорости.

Эта опция была введена в curl 7.10.

Если эта опция используется несколько раз, будет использован последний.

-l / - только список

(FTP) При отображении каталога FTP этот переключатель вызывает просмотр только по имени. Это особенно полезно, если вы хотите машинно проанализировать содержимое каталога FTP, поскольку при обычном представлении каталога не используется стандартный вид или формат.

Этот параметр вызывает отправку команды FTP NLST. Некоторые FTP-серверы перечисляют только файлы в своем ответе на NLST; они не включают подкаталоги и символические ссылки.

Если этот параметр используется дважды, второй снова отключит только список.

-L / - местонахождение

(HTTP / HTTPS) Если сервер сообщает, что запрашиваемая страница имеет другое местоположение (указанное в строке заголовка Location :), этот флаг позволит curl попытаться повторно попытаться получить на новом месте. Если используется вместе с -i / - include или -I / - head, будут показаны заголовки со всех запрошенных страниц. Если используется аутентификация, curl будет отправлять свои учетные данные только на начальный хост, поэтому, если перенаправление берет curl на другой хост, он не будет перехватывать пользователь + пароль.См. Также --location-trust, чтобы узнать, как это изменить.

Если этот параметр используется дважды, второй снова отключит отслеживание местоположения.

- доверенный

(HTTP / HTTPS) Подобно -L / - location, но позволяет отправлять имя + пароль всем хостам, на которые сайт может выполнять перенаправление. Это может или не может привести к нарушению безопасности, если сайт перенаправляет вас на сайт, на который вы отправляете свою информацию для аутентификации (которая является открытым текстом в случае базовой аутентификации HTTP).

Если этот параметр используется дважды, второй снова отключит отслеживание местоположения.

--max-sizes <байты>

Укажите максимальный размер (в байтах) загружаемого файла. Если запрошенный файл больше этого значения, передача не начнется и curl вернется с кодом выхода 63.

ПРИМЕЧАНИЕ. Размер файла не всегда известен перед загрузкой, и для таких файлов этот параметр не действует, даже если размер передаваемого файла превышает данный лимит.Это касается как передачи по FTP, так и HTTP.

-м / - макс. Время <секунды>

Максимальное время в секундах, в течение которого можно выполнить всю операцию. Это полезно для предотвращения зависания ваших пакетных заданий в течение нескольких часов из-за медленной сети или выхода из строя ссылок. Это не работает полностью в системах win32. См. Также параметр --connect-timeout.

Если эта опция используется несколько раз, будет использован последний.

-M / - ручной

Руководство. Отобразите огромный текст справки.

-н / - netrc

Заставляет curl сканировать файл .netrc в домашнем каталоге пользователя на предмет имени пользователя и пароля. Обычно это используется для ftp в unix. Если используется с http, curl включит аутентификацию пользователя. См. Netrc (4) или ftp (1) для получения подробной информации о формате файла. Curl не будет жаловаться, если у этого файла нет необходимых разрешений (он не должен быть доступен для чтения всем или группе). Переменная окружения «HOME» используется для поиска домашнего каталога.

Быстрый и очень простой пример того, как настроить.netrc, чтобы разрешить curl подключаться по ftp к машине host.domain.com с именем пользователя & zerosp; 'я' и паролем 'секрет', должно выглядеть примерно так:

машина host.domain.com логин сам пароль секрет

Если этот параметр используется дважды, второй снова отключит использование netrc.

--netrc-необязательный

Очень похоже на --netrc, но этот параметр делает использование .netrc необязательным и не обязательным, как это делает --netrc.

- переговоры

(HTTP) Включает аутентификацию GSS-Negotiate.Метод GSS-Negotiate был разработан Microsoft и используется в их веб-приложениях. Это в первую очередь предназначено для поддержки аутентификации Kerberos5, но может также использоваться вместе с другими методами аутентификации. Дополнительные сведения см. В проекте IETF draft-brezak-spnego-http-04.txt. (Добавлено в 7.10.6)

Эта опция требует, чтобы библиотека была построена с поддержкой GSSAPI. Это не очень распространено. Используйте -V / - version, чтобы узнать, поддерживает ли ваша версия GSS-Negotiate.

Если этот параметр используется несколько раз, следующие события не имеют значения.

-N / - без буфера

Отключает буферизацию выходного потока. В обычных рабочих ситуациях curl будет использовать стандартный поток вывода с буферизацией, что приведет к тому, что данные будут выводиться порциями, не обязательно точно в момент поступления данных. Использование этой опции отключит эту буферизацию.

Если эта опция используется дважды, вторая снова включит буферизацию.

--ntlm

(HTTP) Включает проверку подлинности NTLM. Метод проверки подлинности NTLM был разработан Microsoft и используется веб-серверами IIS.Это проприетарный протокол, спроектированный умными людьми и реализованный в curl на основе их усилий. Такое поведение не следует одобрять, вы должны поощрять всех, кто использует NTLM, вместо этого перейти на общедоступный и документированный метод аутентификации. Такие как Дайджест. (Добавлено в 7.10.6)

Если вы хотите включить NTLM для проверки подлинности прокси, используйте --proxy-ntlm.

Эта опция требует, чтобы библиотека была построена с поддержкой SSL. Используйте -V / - version, чтобы узнать, поддерживает ли ваш curl NTLM.

Если этот параметр используется несколько раз, следующие события не имеют значения.

-o / - output <файл>

Записывать вывод в <файл> вместо стандартного вывода. Если вы используете {} или [] для получения нескольких документов, вы можете использовать '#', за которым следует число в спецификаторе . Эта переменная будет заменена текущей строкой для запрашиваемого URL. Как в:

curl http: // {один, два} .site.com -o "file_ # 1.txt"

или используйте несколько переменных, например:

curl http: // {сайт, хост}.хост [1-5] .com -o "# 1_ # 2"

Вы можете использовать эту опцию столько раз, сколько у вас есть URL-адресов.

См. Также параметр --create-dirs для динамического создания локальных каталогов.

-O / - удаленное имя

Записать вывод в локальный файл с именем, как у полученного удаленного файла. (Используется только файловая часть удаленного файла, путь обрезается.)

Вы можете использовать эту опцию столько раз, сколько у вас есть URL-адресов.

--pass <фраза>

(SSL) Кодовая фраза для закрытого ключа

Если эта опция используется несколько раз, будет использован последний.

- прокси-NTLM

Указывает curl использовать проверку подлинности NTLM при взаимодействии с указанным прокси-сервером. Используйте --ntlm для включения NTLM с удаленным хостом.

Если этот параметр используется дважды, второй снова отключит прокси NTLM.

-p / - прокси-туннель

Когда используется HTTP-прокси (-x / - proxy), эта опция заставит протоколы, отличные от HTTP, пытаться туннелировать через прокси вместо того, чтобы просто использовать его для выполнения HTTP-подобных операций. Туннельный подход осуществляется с помощью запроса CONNECT HTTP-прокси и требует, чтобы прокси разрешал прямое соединение с удаленным номером порта, через который curl хочет туннелировать.

Если этот параметр используется дважды, второй снова отключит прокси-туннель.

-P / - ftp-port <адрес>

(FTP) Меняет роли инициатора / слушателя при подключении по ftp. Этот переключатель заставляет Curl использовать команду PORT вместо PASV. На практике PORT сообщает серверу подключиться к указанному клиенту адресу и порту, в то время как PASV запрашивает у сервера IP-адрес и порт для подключения. <адрес> должен быть одним из:

интерфейс

и.e "eth0", чтобы указать IP-адрес интерфейса, который вы хотите использовать (только для Unix).

IP-адрес

то есть "192.168.10.1", чтобы указать точный IP-адрес.

имя хоста

то есть "my.host.domain" для указания машины

-

(любая однобуквенная строка), чтобы выбрать значение машины по умолчанию

Если эта опция используется несколько раз, будет использован последний. Отключите использование ПОРТА с помощью --ftp-pasv. Отключите попытку использовать команду EPRT вместо PORT с помощью --disable-eprt.EPRT - это действительно ПОРТ ++.

-q

Если используется в качестве первого параметра в командной строке, файл $ HOME / .curlrc не будет читаться и использоваться в качестве файла конфигурации.

-Q / - цитата <команда>

(FTP) Отправить произвольную команду на удаленный FTP-сервер с помощью команды QUOTE на сервере. Не все серверы поддерживают эту команду, а набор команд QUOTE зависит от сервера! Команды цитаты отправляются ДО того, как происходит перевод. Чтобы команды выполнялись после успешной передачи, поставьте перед ними дефис '-'.Вы можете указать любое количество команд, которые будут выполняться до и после передачи. Если сервер возвращает ошибку для одной из команд, вся операция будет прервана.

Эту опцию можно использовать несколько раз.

--random-file <файл>

(HTTPS) Укажите путь к файлу, содержащему данные, которые будут считаться случайными. Эти данные используются для заполнения случайного механизма для SSL-соединений. См. Также параметр --egd-file.

-r / - диапазон <диапазон>

(HTTP / FTP) Получить диапазон байтов (т.е.e частичный документ) с HTTP / 1.1 или FTP-сервера. Диапазоны можно указать разными способами.

0-499 определяет первые 500 байтов

500-999 указывает вторые 500 байтов

-500 указывает последние 500 байтов

9500 определяет байты от смещения 9500 и вперед

0-0, -1 указывает только первый и последний байт (*) (H)

500-700,600-799 указывает 300 байтов от смещения 500 (H)

100-199,500-599 определяет два отдельных диапазона по 100 байтов (*) (H)

(*) = ОБРАТИТЕ ВНИМАНИЕ, что это приведет к тому, что сервер ответит составным ответом!

Вы также должны знать, что многие HTTP / 1.На серверах 1 эта функция не включена, поэтому при попытке получить диапазон вместо этого вы получите весь документ.

Загрузки диапазона FTP поддерживают только простой синтаксис «старт-стоп» (необязательно с опущением одного из чисел). Это зависит от SIZE команды, отличной от RFC.

Если эта опция используется несколько раз, будет использован последний.

-R / - дистанционно-временной

При использовании это заставит libcurl попытаться определить временную метку удаленного файла, и, если она доступна, локальный файл получит ту же временную метку.

Если эта опция используется дважды, второй раз отключает ее снова.

-с / - бесшумный

Бесшумный режим. Не показывать индикатор выполнения или сообщения об ошибках. Делает Curl беззвучным.

Если этот параметр используется дважды, второй снова отключит звук.

-S / - показать ошибку

При использовании с -s выводит сообщение об ошибке curl в случае сбоя.

Если этот параметр используется дважды, второй снова отключит отображение ошибки.

--socks <хост [: порт]>

Использовать указанный прокси-сервер SOCKS5.Если номер порта не указан, предполагается, что это порт 1080. (опция добавлена ​​в 7.11.1)

Эта опция отменяет любое предыдущее использование -x / - proxy, поскольку они являются взаимоисключающими.

Если эта опция используется несколько раз, будет использован последний.

--stderr <файл>

Вместо этого перенаправить все записи в stderr в указанный файл. Если имя файла представляет собой простой '-', оно вместо этого записывается в стандартный вывод. Этот вариант не имеет смысла, если вы используете оболочку с приличными возможностями перенаправления.

Если эта опция используется несколько раз, будет использован последний.

-t / - telnet-option

Параметры передачи в протокол telnet. Поддерживаемые варианты:

TTYPE = Устанавливает тип терминала.

XDISPLOC = Устанавливает расположение X-дисплея.

NEW_ENV = Устанавливает переменную среды.

-T / - загружаемый файл <файл>

Переносит указанный локальный файл на удаленный URL.Если в указанном URL-адресе нет части файла, Curl добавит имя локального файла. ОБРАТИТЕ ВНИМАНИЕ, что вы должны использовать завершающий / в последнем каталоге, чтобы действительно доказать Curl, что нет имени файла, иначе curl будет думать, что ваше последнее имя каталога является именем удаленного файла для использования. Это, скорее всего, приведет к сбою операции загрузки. Если это используется на сервере http (s), будет использоваться команда PUT.

Используйте имя файла «-» (одиночное тире), чтобы использовать стандартный ввод вместо данного файла.

До 7.10.8, когда эта опция использовалась несколько раз, использовалась последняя.

В curl 7.10.8 и более поздних версиях вы можете указать один -T для каждого URL-адреса в командной строке. Каждая пара -T + URL указывает, что загружать и куда. curl также поддерживает "подстановку" аргумента -T, что означает, что вы можете загрузить несколько файлов на один URL-адрес, используя тот же стиль подстановки URL-адресов, который поддерживается в URL-адресе, например:

curl -T "{файл1, файл2}" http://www.uploadtothissite.com

или даже

curl -T "img [1-1000].png "ftp://ftp.picturemania.com/upload/

--trace <файл>

Включает полный дамп трассировки всех входящих и исходящих данных, включая описательную информацию, в указанный выходной файл. Используйте «-» в качестве имени файла, чтобы вывод был отправлен на стандартный вывод.

Если эта опция используется несколько раз, будет использован последний. (Добавлено в 7.9.7)

--trace-ascii <файл>

Включает полный дамп трассировки всех входящих и исходящих данных, включая описательную информацию, в указанный выходной файл.Используйте «-» в качестве имени файла, чтобы вывод был отправлен на стандартный вывод.

Это очень похоже на --trace, но без шестнадцатеричной части и показывает только ASCII-часть дампа. Он обеспечивает меньший размер вывода, который может быть легче прочитать неподготовленным людям.

Если эта опция используется несколько раз, будет использован последний. (Добавлено в 7.9.7)

-u / - пользователь <пользователь: пароль>

Укажите пользователя и пароль, которые будут использоваться для аутентификации сервера.

Если эта опция используется несколько раз, будет использован последний.

-U / - proxy-user <пользователь: пароль>

Укажите пользователя и пароль, которые будут использоваться для аутентификации прокси.

Если эта опция используется несколько раз, будет использован последний.

--url

Укажите URL-адрес для выборки. Эта опция в основном удобна, когда вы хотите указать URL-адреса в файле конфигурации.

Эту опцию можно использовать любое количество раз. Чтобы указать, куда записывается этот URL, используйте параметры -o / - output или -O / - remote-name.

-v / - подробный

Делает получение более подробным / разговорчивым. В основном используется для отладки. Строки, начинающиеся с '>', означают данные, отправленные curl, '<' означает данные, полученные curl, которые в обычных случаях скрыты, а строки, начинающиеся с '*', означают дополнительную информацию, предоставляемую curl.

Обратите внимание, что если вы хотите видеть заголовки HTTP в выводе, -i / - include может быть вариантом, который вы ищете.

Если вы считаете, что этот параметр по-прежнему не дает вам достаточно подробностей, подумайте об использовании вместо этого --trace или --trace-ascii.

Если этот параметр используется дважды, второй снова отключит подробные сведения.

-V / - исполнение

Отображает информацию о curl и версии libcurl, которую он использует.

Первая строка включает полную версию curl, libcurl и других сторонних библиотек, связанных с исполняемым файлом.

Вторая строка (начинается с «Протоколы:») показывает все протоколы, которые libcurl сообщает о поддержке.

Третья строка (начинается с «Features:») показывает конкретные функции, которые предлагает libcurl.Доступные функции включают:

IPv6

С этим можно использовать IPv6.

руб. 4

Krb4 для ftp поддерживается.

SSL

HTTPS и FTPS поддерживаются.

libz

Поддерживается автоматическая распаковка сжатых файлов через HTTP.

NTLM

NTLM-аутентификация поддерживается.

GSS-переговоры

Согласование аутентификации поддерживается.

Отладка

Этот curl использует libcurl, созданный с помощью Debug.Это дает больше возможностей для отслеживания ошибок и отладки памяти и т. Д. Только для разработчиков curl!

AsynchDNS

Этот curl использует асинхронное разрешение имен.

СПНЕГО

Поддерживается аутентификация SPNEGO Negotiate.

Большой файл

Этот curl поддерживает передачу больших файлов, файлов размером более 2 ГБ.

-w / - выписывание <формат>

Определяет, что отображать после завершенной и успешной операции. Формат представляет собой строку, которая может содержать простой текст, смешанный с любым количеством переменных.Строка может быть указана как «строка», чтобы получить чтение из определенного файла, вы указываете его «@ имя_файла» и чтобы указать curl для чтения формата из стандартного ввода, вы пишете «@ -».

Переменные, представленные в выходном формате, будут заменены значением или текстом, которые curl сочтет подходящими, как описано ниже. Все переменные указываются как% {variable_name}, и для вывода обычного% вы просто пишете их как %%. Вы можете вывести новую строку с помощью n, возврата каретки с помощью r и пробела с помощью t.

ПРИМЕЧАНИЕ. Буква% - это специальная буква в среде win32, где все вхождения% должны быть удвоены при использовании этой опции.

На данный момент доступны следующие переменные:

url_effective Последний полученный URL. В основном это имеет смысл, если вы сказали curl следовать location: headers.

http_code Числовой код, который был найден на последней полученной странице HTTP (S).

time_total Общее время в секундах, в течение которого длилась полная операция. Время будет отображаться с точностью до миллисекунды.

time_namelookup Время в секундах, которое прошло от начала до завершения преобразования имени.

time_connect Время в секундах, которое потребовалось от начала до завершения подключения к удаленному узлу (или прокси).

time_pretransfer Время в секундах, которое прошло от начала до начала передачи файла. Это включает в себя все команды перед передачей и согласования, которые относятся к конкретному протоколу (протоколам).

time_starttransfer Время в секундах, которое прошло от начала до момента, когда первый байт вот-вот будет передан.Это включает time_pretransfer, а также время, необходимое серверу для вычисления результата.

size_download Общий объем загруженных байтов.

size_upload Общий объем загруженных байтов.

size_header Общий объем загруженных заголовков в байтах.

size_request Общий объем байтов, отправленных в HTTP-запросе.

speed_download Средняя скорость загрузки, измеренная curl для полной загрузки.

speed_upload Средняя скорость загрузки, измеренная curl для полной загрузки.

content_type Тип содержимого запрошенного документа, если таковой был. (Добавлено в 7.9.5)

Если эта опция используется несколько раз, будет использован последний.

-x / - прокси

Использовать указанный прокси-сервер HTTP. Если номер порта не указан, предполагается, что это порт 1080.

Этот параметр переопределяет существующие переменные среды, которые задают использование прокси.Если есть переменная среды, задающая прокси, вы можете установить прокси на & zerosp; "", чтобы переопределить его.

Обратите внимание, что все операции, выполняемые через прокси-сервер HTTP, будут преобразованы в HTTP прозрачно. Это означает, что некоторые операции, специфичные для протокола, могут быть недоступны. Это не тот случай, если вы можете туннелировать через прокси, как это делается с параметром -p / - proxytunnel.

Если эта опция используется несколько раз, будет использован последний.

-X / - запрос <команда>

(HTTP) Задает настраиваемый запрос для использования при обмене данными с HTTP-сервером.Указанный запрос будет использоваться вместо стандартного GET. Прочтите спецификацию HTTP 1.1 для получения подробностей и пояснений.

(FTP) Задает настраиваемую команду FTP для использования вместо LIST при составлении списков файлов с помощью ftp.

Если эта опция используется несколько раз, будет использован последний.

-г / - скорость-время <время>

Если загрузка идет медленнее, чем ограничение скорости в байтах в секунду в течение периода времени скорости, загрузка прерывается. Если используется скорость-время, ограничение скорости по умолчанию будет равно 1, если не установлено с -y.

Этот параметр контролирует передачу и, следовательно, не влияет на медленное соединение и т. Д. Если вас это беспокоит, попробуйте параметр --connect-timeout.

Если эта опция используется несколько раз, будет использован последний.

-Y / - ограничение скорости <скорость>

Если загрузка идет медленнее, чем заданная скорость в байтах в секунду, в течение секунд скорость-время она прерывается. speed-time устанавливается с помощью -Y и 30, если не установлен.

Если эта опция используется несколько раз, будет использован последний.

-z / - time-cond <выражение даты>

(HTTP) Запрос на получение файла, который был изменен позже указанного времени и даты, или файла, который был изменен до этого времени. Выражение даты может быть всевозможными строками даты или, если оно не соответствует никаким внутренним, вместо этого пытается получить время из заданного имени файла! См. Справочные страницы GNU date (1) или curl_getdate (3) для получения подробной информации о выражении даты.

Начните выражение даты с тире (-), чтобы запросить документ, который старше указанной даты / времени, по умолчанию это документ, который новее, чем указанная дата / время.

Если эта опция используется несколько раз, будет использован последний.

-Z / - max-redirs <число>

Установить максимально допустимое количество повторений перенаправления. Если используется -L / - location, то эту опцию можно использовать для предотвращения следования curl за перенаправлениями & zerosp; "in absurdum".

Если эта опция используется несколько раз, будет использован последний.

-0 / - http1.0

(HTTP) Заставляет curl выдавать свои запросы с использованием HTTP 1.0 вместо использования его внутреннего предпочтительного: HTTP 1.1.

-1 / - tlsv1

(HTTPS) Заставляет curl использовать TSL версии 1 при согласовании с удаленным сервером TLS.

-2 / - sslv2

(HTTPS) Заставляет curl использовать SSL версии 2 при согласовании с удаленным сервером SSL.

-3 / - sslv3

(HTTPS) Заставляет curl использовать SSL версии 3 при согласовании с удаленным сервером SSL.

-4 / - ipv4

Если libcurl может преобразовывать адрес в несколько версий IP (что так и есть, если он поддерживает IPv6), эта опция указывает libcurl разрешать имена только в IPv4-адреса.(Добавлено в 7.10.8)

-6 / - ipv6

Если libcurl может преобразовывать адрес в несколько IP-версий (что так и есть, если он поддерживает IPv6), эта опция указывает libcurl разрешать имена только в IPv6-адреса. (Добавлено в 7.10.8)

- # / - индикатор выполнения

Сделать так, чтобы в curl отображалась информация о ходе выполнения в виде индикатора выполнения вместо статистики по умолчанию.

Если этот параметр используется дважды, второй снова отключит индикатор выполнения.

ФАЙЛЫ

~ /.curlrc

Файл конфигурации по умолчанию.

ОКРУЖАЮЩАЯ СРЕДА

http_proxy [протокол: //] <хост> [: порт]

Устанавливает прокси-сервер для использования для HTTP.

HTTPS_PROXY [протокол: //] <хост> [: порт]

Задает использование прокси-сервера для HTTPS.

FTP_PROXY [протокол: //] <хост> [: порт]

Устанавливает прокси-сервер для использования для FTP.

GOPHER_PROXY [протокол: //] <хост> [: порт]

Устанавливает прокси-сервер для использования в GOPHER.

ALL_PROXY [протокол: //] <хост> [: порт]

Задает использование прокси-сервера, если прокси-сервер для конкретного протокола не установлен.

NO_PROXY <список хостов, разделенных запятыми>

список имен хостов, которые не должны проходить через прокси. Если установлен только звездочка '*', он соответствует всем хостам.

КОДЫ ВЫХОДА

Существует множество различных кодов ошибок и соответствующих им сообщений об ошибках, которые могут появиться в плохих условиях. На момент написания этой статьи коды выхода:

1

Неподдерживаемый протокол.Эта сборка curl не поддерживает этот протокол.

2

Не удалось инициализировать.

3

Неправильный формат URL. Синтаксис неправильный.

4

URL-адрес пользователя неверно отформатирован. Пользовательская часть синтаксиса URL-адреса неверна.

5

Не удалось разрешить прокси. Указанный прокси-сервер не может быть разрешен.

6

Не удалось разрешить хост. Указанный удаленный хост не был разрешен.

7

Не удалось подключиться к хосту.

8

Странный ответ FTP-сервера. Сервер отправил данные, которые curl не удалось проанализировать.

9

Доступ к FTP запрещен. Сервер отказал в входе в систему.

10

Неверный пользователь / пароль FTP. Либо один, либо оба не были приняты сервером.

11

FTP странный ответ PASS. Curl не смог разобрать ответ, отправленный на запрос PASS.

12

FTP странный ответ ПОЛЬЗОВАТЕЛЯ. Curl не смог разобрать ответ, отправленный на запрос USER.

13

FTP странный ответ PASV, Curl не смог проанализировать ответ, отправленный на запрос PASV.

14

FTP странный формат 227. Curl не смог разобрать 227-строчку, отправленную сервером.

15

FTP не может получить хост. Не удалось разрешить IP-адрес хоста, который мы получили в строке 227.

16

FTP не может повторно подключиться. Не удалось подключиться к хосту, который мы получили в 227-й строке.

17

FTP не может установить двоичный файл. Не удалось изменить метод передачи на двоичный.

18

Частичный файл. Была перенесена только часть файла.

19

FTP не может загрузить / получить доступ к данному файлу, команда RETR (или аналогичная) не выполнена.

20

Ошибка записи FTP. Сервер сообщил о неудачной передаче.

21

Ошибка котировки FTP. Команда цитаты вернула с сервера ошибку.

22

HTTP-страница не получена. Запрошенный URL не был найден или вернул другую ошибку с кодом ошибки HTTP 400 или выше.Этот код возврата появляется, только если используется -f / - fail.

23

Ошибка записи. Curl не мог записывать данные в локальную файловую систему или аналогичную.

24

Неправильный пользователь. Имя пользователя указано неверно.

25

FTP не удалось сохранить файл. Сервер отклонил операцию STOR, используемую для загрузки по FTP.

26

Ошибка чтения. Различные проблемы с чтением.

27

Недостаточно памяти. Ошибка запроса выделения памяти.

28

Тайм-аут операции. Указанный период тайм-аута был достигнут в соответствии с условиями.

29

FTP не может установить ASCII. Сервер вернул неизвестный ответ.

30

Ошибка порта FTP. Команда PORT не удалась. Не все FTP-серверы поддерживают команду PORT, попробуйте вместо этого выполнить передачу с помощью PASV!

31

FTP не может использовать REST. Команда REST не удалась. Эта команда используется для возобновления передачи по FTP.

32

FTP не может использовать РАЗМЕР. Команда SIZE не удалась. Команда является расширением исходной спецификации FTP RFC 959.

33

Ошибка диапазона HTTP. Диапазон «команда» не работал.

34

Ошибка публикации HTTP. Внутренняя ошибка создания пост-запроса.

35

Ошибка подключения SSL. Подтверждение связи SSL не удалось.

36

Возобновление неверной загрузки FTP. Не удалось продолжить ранее прерванную загрузку.

37

FILE не удалось прочитать файл. Не удалось открыть файл. Разрешения?

38

LDAP не может выполнить привязку. Не удалось выполнить операцию привязки LDAP.

39

Ошибка поиска LDAP.

40

Библиотека не найдена. Библиотека LDAP не найдена.

41

Функция не найдена. Требуемая функция LDAP не найдена.

42

Прервано обратным вызовом. Приложение приказало curl прервать операцию.

43

Внутренняя ошибка. Функция была вызвана с неверным параметром.

44

Внутренняя ошибка. Функция была вызвана в неправильном порядке.

45

Ошибка интерфейса. Указанный исходящий интерфейс не может быть использован.

46

Введен неверный пароль. При вводе пароля возникла ошибка.

47

Слишком много перенаправлений. Следуя перенаправлениям, curl достигает максимальной суммы.

48

Указана неизвестная опция TELNET.

49

Неправильный формат telnet.

51

SSL-сертификат удаленного узла не в порядке

52

Сервер ничего не ответил, что здесь считается ошибкой.

53

Механизм шифрования SSL не найден

54

Невозможно установить механизм шифрования SSL по умолчанию

55

Не удалось отправить сетевые данные

56

Отказ при приеме сетевых данных

57

Общий ресурс используется (внутренняя ошибка)

58

Проблема с локальным сертификатом

59

Не удалось использовать указанный шифр SSL

60

Проблема с сертификатом CA (путь? Разрешение?)

61

Нераспознанная кодировка передачи

62

Неверный URL-адрес LDAP

63

Превышен максимальный размер файла

ХХ

В будущих выпусках здесь будут появляться другие коды ошибок.Существующие никогда не изменятся.

АВТОРЫ / СОСТАВИТЕЛИ

Дэниел Стенберг является основным автором, но весь список участников находится в отдельном файле СПАСИБО.

WWW

http://curl.haxx.se

FTP

ftp://ftp.sunet.se/pub/www/utilities/curl/

СМОТРИ ТАКЖЕ

ftp (1) wget (1) snarf (1)

Эта HTML-страница была создана с помощью roffit.

Как использовать CURL для отправки запросов API

В этой статье мы собираемся обсудить, как использовать curl для взаимодействия с RESTful API. curl - это утилита командной строки, которую можно использовать для отправки запросов к API.

API-запросы состоят из четырех частей:

  • Конечная точка. Это URL-адрес, на который мы отправляем запросы.
  • Метод HTTP. Действие, которое мы хотим выполнить. Наиболее распространенные методы: GET POST PUT DELETE и PATCH
  • Заголовки. Заголовки, которые мы хотим отправить вместе с нашим запросом, e.грамм. заголовок авторизации.
  • Кузов. Данные, которые мы хотим отправить в api.

curl Синтаксис

Синтаксис команды curl :

  curl [параметры] [URL ...]
  

В этом посте мы рассмотрим следующие варианты:

  • -X или --request - HTTP-метод, который будет использоваться
  • -i или --include - Включить заголовки ответа
  • -d или --data - данные для отправки в API
  • -H или --header - Любые дополнительные заголовки для отправки

HTTP GET

Метод GET используется для выборки ресурса с сервера.В curl метод GET является методом по умолчанию, поэтому указывать его не нужно.

Пример:

  curl https://jsonplaceholder.typicode.com/posts
  

GET с параметрами запроса

Мы также можем отправлять параметры запроса вместе с запросом GET curl .

Пример:

  curl https://jsonplaceholder.typicode.com/posts?userId=5
  

HTTP POST

Метод POST используется для создания ресурса на сервере.

Чтобы отправить запрос POST curl , мы используем опцию -X POST .

Данные формы POST

Пример:

  curl -X POST -d "userId = 5 & title = Заголовок сообщения & body = Содержимое сообщения." https://jsonplaceholder.typicode.com/posts
  

По умолчанию curl использует Content-Type: application / x-www-form-urlencoded в качестве заголовка Content-Type , поэтому нам не нужно указывать его при отправке данных формы.

ЗАПИСЬ JSON

Чтобы POST JSON с помощью curl , мы должны указать Content-Type как application / json .

Пример:

  curl -X POST -H "Content-Type: application / json" \
    -d '{"userId": 5, "title": "Заголовок сообщения", "body": "Содержание сообщения."}' \
    https://jsonplaceholder.typicode.com/posts
  

HTTP PUT

Метод PUT используется для обновления или для замены ресурса на сервере. Он заменяет все данные указанного ресурса предоставленными данными запроса.

Примечание: Для запроса PUT мы должны предоставить все данные в теле запроса.

Чтобы отправить запрос curl PUT, мы используем опцию -X PUT .

Пример:

  curl -X PUT -H "Content-Type: application / json" \
    -d '{"userId": 5, "title": "Заголовок нового сообщения", "body": "Содержание нового сообщения."}' \
    https://jsonplaceholder.typicode.com/posts/5
  

Приведенный выше запрос PUT заменит ранее созданное сообщение на «Новый заголовок сообщения» и «Новое тело сообщения».

HTTP-ПАТЧ

Метод PATCH используется для выполнения частичных обновлений ресурса на сервере.

Примечание: Для запроса PATCH нам не нужно предоставлять все данные. Мы отправляем только те данные, которые хотим обновить.

Чтобы отправить запрос PATCH curl , мы используем опцию -X PATCH .

Пример:

  curl -X PATCH -H "Content-Type: application / json" \
    -d '{"userId": 5, "body": "Обновленное содержание сообщения."}' \
    https://jsonplaceholder.typicode.com/posts/5
  

Обратите внимание, что мы отправляем только тело с «Обновленным содержанием сообщения», поскольку мы делаем частичное обновление.

УДАЛИТЬ HTTP

Метод DELETE используется для удаления указанного ресурса с сервера.

Чтобы отправить запрос curl DELETE, мы используем опцию -X DELETE .

  curl -X УДАЛИТЬ https://jsonplaceholder.typicode.com/posts/5
  

Примечание: У метода DELETE нет тела.

Аутентификация

Иногда конечная точка API имеет ограниченный доступ и обслуживает запросы только аутентифицированных и авторизованных пользователей.Для этих запросов мы должны предоставить токен доступа в заголовке запроса.

Чтобы отправить заголовок curl , мы используем: -H option.

Следующий запрос отправляет запрос POST с токеном носителя в заголовке:

  curl -X POST \
  https: // some-web-url / api / v1 / users \
  -H 'Принять: приложение / json' \
  -H 'Content-Type: application / json' \
  -H 'Авторизация: предъявитель {ACCESS_TOKEN}' \
  -H 'управление кешем: без кеша' \
  -d '{
  "username": "myusername",
  "электронная почта": "myusername @ gmail.com ",
  "пароль": "Passw0rd123!"
} '
  

Заключение

В этом посте мы узнали, как отправлять HTTP-запросы (GET, POST, PUT, PATCH и DELETE) в API с помощью команд curl.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *