今回は、「cURL(client for URL)」コマンドを使用して、HTTPリクエストのPOSTメソッドでXML形式データを送信する方法を紹介していきます。
検証環境
検証に使用した環境/ライブラリを次に記載します。
- cURL
- バージョン:7.68.0 (x86_64-pc-linux-gnu)
送信方法
リクエスト行の指定方法
HTTPリクエストでPOSTメソッドを使用するための指定方法は、次のようになります。
$ curl http://example.com -X POST
「-X」オプションは、HTTPリクエストのメソッド種別を指定することができます。指定しない場合は、「GET」メソッドが指定されたことになります。
ヘッダーの指定方法
HTTPリクエストでXML形式データとして送信するための指定方法は、次のようになります。
$ curl http://example.com -X POST -H 'Content-Type: application/xml'
「-H」オプションは、HTTPリクエストのヘッダーを指定することができます。XML形式で送信する場合は、次のいずれかの値を指定することになります。
- application/xml
- text/xml
ボディの指定方法
HTTPリクエストでボディのデータを指定する方法は「-d」オプションを指定します。指定方法としては次の方法があります。
- ファイル指定
- 直接指定(1行指定)
- 直接指定(複数行指定)
ファイル指定
ファイルを指定する場合は、次のように指定します。
$ curl http://example.com -X POST -H 'Content-Type: application/xml' -d @request.xml
「-d」オプションの後に「@ファイル名」を指定することで、ファイル内容をボディのデータとして送信することができます。
直接指定(1行指定)
直接指定する場合は、次のように指定します。
$ curl http://example.com -X POST -H 'Content-Type: application/xml' -d '<request><example>ex
ample</example></request>'
「-d」オプションの後に送信内容を指定することで、指定した内容をボディのデータとして送信することができます。
直接指定(複数行指定)
複数行を直接指定する場合は、次のように指定します。
$ curl http://example.com -X POST -H 'Content-Type: application/xml' -d @- << EOF
> <request>
> <example>example</example>
> </request>
> EOF
「-d」オプションの後に「@-」指定することで、標準入出力から情報をボディのデータとして送信することができます。このオプションとヒアドキュメントを使用することで、複数行のXML形式データを指定することができるようになります。
例では、送信するXML形式データの前後に「EOF」を入力することで指定したXML形式データが送信できます。
まとめ
「curl」コマンドを使用して、HTTPリクエストのPOSTメソッドでXML形式データを送信する方法を紹介しました。