Post get запросы linux

HTTP POST and GET using cURL in linux

Linux provides a nice little command which makes our lives a lot easier.

curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://hostname/resource 
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource 
curl --data "param1=value1¶m2=value2" http://hostname/resource 
curl --form "fileupload=@filename.txt" http://hostname/resource 
curl -X POST -d @filename http://hostname/resource 

For logging into a site (auth):

curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login curl -L -b headers http://localhost/ 

the -H flag can also be used to delcare your content as «application/json» when posting data with -X POST

You must log in to answer this question.

Linked

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.14.43533

Ubuntu and the circle of friends logo are trade marks of Canonical Limited and are used under licence.

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

10 команд curl, которые вам следует знать

Команда Mail.ru Cloud Solutions перевела статью, автор которой составил краткий справочник часто используемых команд curl для протоколов HTTP/HTTPS. Это не замена официального руководства по cURL, скорее, краткий конспект.

cURL (расшифровывается как Client URL) — программное обеспечение, которое предоставляет библиотеку libcurl и инструмент командной строки curl. Возможности cURL огромны, во многих опциях легко потеряться.

curl — инструмент для передачи данных с сервера или на него, при этом используется один из поддерживаемых протоколов: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET и TFTP. Команда предназначена для работы без взаимодействия с пользователем.

Команда curl запускается из командной строки и предустановлена в большинстве дистрибутивов Linux.

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

Читайте также:  Port scanning linux nmap

Если никакие аргументы не указаны, то команда curl выполняет HTTP-запрос get и отображает статическое содержимое страницы. Оно аналогично тому, что мы видим при просмотре исходного кода в браузере.

Есть два варианта этой команды.

Еще можно скачать несколько файлов одной командой, хотя в мануале так делать не рекомендуют.

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

curl -I https://www.google.com HTTP/1.1 200 OK Content-Type: text/html; charset=ISO-8859-1 P3P: CP=»This is not a P3P policy! See g.co/p3phelp for more info.» Date: Thu, 04 Jun 2020 15:07:42 GMT Server: gws X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN Transfer-Encoding: chunked Expires: Thu, 04 Jun 2020 15:07:42 GMT Cache-Control: private Set-Cookie: 1P_JAR=2020-06-04-15; expires=Sat, 04-Jul-2020 15:07:42 GMT; path=/; domain=.google.com; Secure Set-Cookie:

Когда вы тестируете веб-приложение или API, то в вашем тестовом окружении могут быть самоподписанные или неправильные SSL-сертификаты. По умолчанию curl верифицирует все сертификаты. Чтобы он не выдавал ошибку о неверных сертификатах и устанавливал соединение для тестирования, используйте опцию -k или -insecure.

Иногда для тестирования API нужно отправить какие-либо данные, обычно это делают через POST-запрос. Если вы делаете POST-запрос при помощи curl, то можете отправить данные либо в виде списка имя=значение, либо в виде JSON.

Параметр —data эквивалентен -d, оба указывают curl выполнить HTTP POST-запрос.

Если curl не передаются никакие данные, то по умолчанию он выполняет HTTP GET запрос. Но если вам, например, нужно обновить данные, а не пересоздать их заново, то curl поддерживает опции, указывающие тип запроса. Параметры -x или —request позволяют указать тип HTTP-запроса, который используется для сообщения с сервером.

API защищено авторизацией по логину-паролю — вы можете передать пару логин-пароль, используя параметр -u или —user. Если просто передать логин, то curl запросит пароль в командной строке. Используете параметр несколько раз — для авторизации на сервер будет передано только последнее значение.

Вы хотите протестировать API перед развертыванием и перенаправить запрос на тестовую машину — это можно сделать, указав альтернативный резольв имени эндпоинта для данного запроса. Все работает эквивалентно пропиcыванию хоста в /etc/hosts.

О возможности загрузки файла через curl я узнал недавно. Не был уверен, что это возможно, но, по всей видимости, это так: curl с опцией -F эмулирует отправку заполненной формы, когда пользователь нажимает кнопку отправки. Опция указывает curl передавать данные в виде POST-запроса, используя multipart / form-data Content-Type.

Вы можете загрузить несколько файлов, повторяя параметр -F.

Вы можете использовать опцию -w для отображения информации в stdout после завершения передачи. Она поддерживает отображение набора переменных. Например, можно узнать общее время, которое потребовалось для успешного выполнения запроса. Это удобно, если вам нужно определить время загрузки или скачивания с помощью curl.

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

Источник

RESTful API Requests from Client to Server via Command Line

Want to learn more? Get 250+ courses and 2,000 hours in the Mammoth Unlimited Membership.

What is curl?

curl is a tool to transfer data from or to a server

Читайте также:  Linux tar to ftp

Install curl

To check to see if you have curl installed on your computer:

  • Open your Terminal application (also called Command Line or Command Prompt)
  • Enter the command: curl
  • If you see, “Error: curl not found,” install curl.

GET request with curl

What is a GET request?

This type of HTTP request is for retrieving data.

Example of a GET request

Paste the following code into your Terminal (or Command Line) application to make a GET request from http://localhost:3000/api:

curl http://localhost:3000/api

Breaking down the GET request

  • curl is the command to use the curl tool
  • http://localhost:3000/api is the route from which you want to get data. You must replace this with whichever route your project uses to handle a GET request.

Your sever must listen for the client’s request of http://localhost:3000/api. The server’s response must be to display all the data in the database.

Note – Your server must handle each route that you visit, such as http://localhost:3000/api.

Where is the type of request?

The default HTTP request type is GET. Therefore, we don’t have to specify the type of request in the command.

Do more?

You can also use GET to retrieve one piece of data by an identifier, like a unique ID.

POST request with curl

What is POST request?

This type of HTTP request is for creating a new entry in a database.

Example of a POST request

curl -d “name=Alex&course=Unreal” -X POST http://localhost:3000/api/people

Breaking down the POST request

Sending data in the request body

  • -d is the command to specify that the next code will be data (the body of your request).
    • We need to send data containing the properties of the object we want to add to our database.
    • 1 property of the object is name, which has the value Alex.
    • Another property of the object is course, which has the value Unreal.
    • Properties are separated with an ampersand (‘and’ symbol) &.

    Sending the type of request

    • -X is the command to specify that the next code will be the type of request sent.
    • POST is the type of request we are sending, a POST HTTP request.
    • http://localhost:3000/api/people is the route that handles posting data.

    Server side

    • Note – Your sever must listen for the client’s POST request of http://localhost:3000/api/people.
    • The server’s response must be to take the data in the body of the request and put it into the project database.

    Send JSON data in POST Request

    curl -d '' -H "Content-Type: application/json" -X POST http://localhost:42212/products
    • The property names can have any capitalization.
    • Strings will be converted to integers if required.
    • If your Terminal does not allow single quotes, you have to escape out of inner double quotes with a backslash.

    PUT request with curl

    What is PUT request?

    This type of HTTP request is for updating an entry entirely in the database.

    Example of a PUT request

    curl -d “name=Alex&course=Excel” -X PUT http://localhost:3000/api/people/61326891216b79d8768c6edd

    Breaking down the PUT request

    • curl is the command to use the curl tool
    • -d is the command to specify that the next code will be data (the body of your request).
      • We need to send data containing the properties of the object we want to add to our database.
      • 1 property of the object is name, which has the value John.
      • Another property of the object is course, which has the value Excel.
      • Properties are separated with an ampersand (‘and’ symbol) &.
      • You must replace :id with an actual id of an entry in your database, such as 61326891216b79d8768c6edd.
      • An ID is a unique identifier for each entry in your database.
      • The ID value is known as a parameter of the request.

      Server side

      • Note – Your sever must listen for the client’s PUT request at http://localhost:3000/api/people/:id.
      • The server must take in the parameter of the request, the ID, and find an entry in the database at that ID.
        • If no entry exists, throw an error.
        • Replace the old name and course Alex and Unreal with John and Excel.

        Send JSON data in PUT Request

        curl -d '' -H "Content-Type: application/json" -X PUT http://localhost:42212/products/2

        PATCH request with curl

        What is PATCH request?

        This type of HTTP request is for updating 1 property of an entry in the database.

        Example of a PATCH request

        curl -d name=Mammoth -X PATCH http://localhost:3000/api/people/61326891216b79d8768c6edd

        Breaking down the PATCH request

        • curl is the command to use the curl tool
        • -d is the command to specify that the next code will be data (the body of your request).
          • We need to send data containing the properties of the object we want to add to our database.
          • You must replace :id with an actual id of an entry in your database, such as 61326891216b79d8768c6edd.
          • An ID is a unique identifier for each entry in your database.
          • The ID value is known as a parameter of the request.

          Server side

          • Note – Your sever must listen for the client’s PATCH request at http://localhost:3000/api/people/:id.
          • The server must take in the parameter of the request, the ID, and find an entry in the database at that ID.
            • If no entry exists, throw an error.
            • Replace the old name John with the new name Mammoth.

            DELETE request with curl

            What is DELETE request?

            This type of HTTP request is for deleting an entry in a database.

            Example of a DELETE request

            curl -X DELETE http://localhost:3000/api/people/61325f4594bd88dec1e165cb

            Breaking down the DELETE request

            • curl is the command to use the curl tool
            • -X is the command to specify that the next code will be the type of request sent.
            • DELETE is the type of request we are sending, an HTTP DELETE request.
            • http://localhost:3000/api/people/:id is the route that handles deleting data.
              • You must replace :id with an actual id of an entry in your database, such as 61326891216b79d8768c6edd.
              • An ID is a unique identifier for each entry in your database.
              • The ID value is known as a parameter of the request.

              Server side

              • Note – Your sever must listen for the client’s DELETE request at http://localhost:3000/api/people/:id.
              • The server must take in the parameter of the request, the ID, and find an entry in the database at that ID.
                • If no entry exists, throw an error.

                Want to learn more? Get 200+ courses and 2,000 hours in the Mammoth Unlimited Membership.

                Источник

Оцените статью
Adblock
detector