Чтобы отправить XML с помощью Curl, необходимо передать XML-данные в Curl с помощью параметра командной строки -d и указать тип данных в теле сообщения запроса POST с помощью параметра командной строки -H Content-Type: application/xml.
1 2 3 4 | curl -X POST https://example.com/echo/post/xml -H "Content-Type: application/xml" -H "Accept: application/xml" -d "<Request><Login>my_login</Login><Password>my_password</Password></Request>" |
В этом примере Curl POST XML мы также передаем заголовок запроса Accept: application/xml, чтобы сообщить серверу, что клиент Curl ожидает от него XML.
Что такое Curl?
1 | Content-Type: application/xml |
Почему нужно указывать Content-Type при отправке XML с помощью Curl?
Если вы отправляете XML-данные с помощью Curl, вы должны явно указать тип данных в теле сообщения POST-запроса. В противном случае Curl передаст серверу тип содержимого application/x-www-form-urlencoded для ваших данных. Поэтому, когда вы отправляете XML (или любой другой тип данных), вам необходимо явно указать тип данных с помощью аргумента командной строки -H "Content-Type: application/xml".
Почему мне нужно передавать заголовок Accept при запросе XML с помощью Curl?
Если ваш клиент Curl ожидает получить XML в результате отправленного запроса, он также должен отправить на сервер заголовок запроса Accept: application/xml. Без этого заголовка сервер может вернуть данные в другом формате.
1 | Accept: application/xml |
Сервер сообщает клиенту о том, что он вернул XML-данные, с помощью заголовка ответа Content-Type: application/xml.
Пример запроса Curl POST XML
Пример отправки XML-данных на адрес example.com.
1 2 3 4 | curl -X POST https://example.com/echo/post/xml -H "Content-Type: application/xml" -H "Accept: application/xml" -d "<xml>....</xml>" |