ファイルからcURLPOSTデータを使用する方法

How Use Curl Post Data From File



cURLは、最小限のユーザー操作でリモートホストとの間でデータを転送するために使用される無料のオープンソースコマンドラインユーティリティです。 cURLは、HTTP、FTP、SCP、SFTPなどのプライマリプロトコルで動作します。

これにより、ユーザーは単一のコマンドまたはbashスクリプトを使用してデータをアップロードおよびダウンロードできます。また、ユーザー認証、プロキシトンネリング、ダウンロード再開、フォームベースのアップロード、SSL証明書などの機能も提供します。 cURLはHTTPクライアント以上のものであると言っても過言ではありません。







このチュートリアルでは、ユーザーがファイルデータを使用してHTTPPOSTリクエストを実行できるようにする1つのcURL機能について説明します。



始める前に、これはcURLの初心者向けガイドではないことをお伝えしておきます。ある程度の事前のノウハウ、特にネットワークプロトコル、HTTPリクエストなどの知識が必要です。



cURLを使用してPOSTリクエストを実行する前に、まずセットアップを始めましょう。





cURLのインストール方法

ほとんどの場合、cURLはデフォルトで主要なLinuxディストリビューションにインストールされています。 cURLがあることを確認するには、コマンドを使用します

カール-ヘルプ

エラーが発生した場合:



-bash:curl:指図見つかりません

続行する前にインストールする必要があります。

以下のコマンドに示すように、デフォルトのパッケージマネージャーを使用してインストールを完了します。

sudo apt-get update

sudo apt-get installカール-と

cURLを使用してファイルからデータをPOSTする方法について説明する前に、POSTリクエストについて簡単に説明します。いつものように、あなたがすでにこれに精通しているなら、あなたは先にスキップするのを遠慮なくすることができます。それ以外の場合は、固執します。

cURLPOSTリクエスト

HTTP POSTリクエストは、リソースを作成または更新するためにリモートホストにデータを送信するために使用される最も一般的なHTTP / HTTPSリクエストメソッドの1つです。

メソッドをPUTと混同しないでください。それらは非常に似ていますが、違いがあります。

POSTリクエストを使用して送信されたデータは、主にHTTPリクエストのリクエスト本文に保存されます。

たとえば、ユーザー名とパスワード、およびそれらの値を送信する以下のPOSTリクエストについて考えてみます。

役職/制限付き/login.php HTTP/1.1ホスト:linuxhint.comコンテンツタイプ:アプリケーション/x-www-form-urlencodedユーザー名= linuxhintパスワード=パス​​ワード

cURLを使用して上記のPOSTリクエストを送信するには、コマンドを次のように指定します。

カール-NS役職-NS ユーザー名= linuxhintパスワード=パス​​ワードhttps://linuxhint.com/制限付き/login.php

上記のコマンドでは、-dオプションを使用して、デフォルトのヘッダーであるContent-Typeを含めるようにcURLに指示しました:application / x-www-form-urlencoded

-Xオプションは、使用するHTTPリクエストメソッド(この場合はHTTP POSTリクエスト)を指定します。

cURLコンテンツタイプを指定します

場合によっては、リクエストを送信するときにContent-Typeを[明示的に]指定したい場合があります。ヘッダーのContent-Typeエンティティは、送信するリソースのメディアのタイプを指定します。メディアタイプは、一般にMIMEタイプとも呼ばれます。

MIMEタイプについて学習したい場合は、以下のリソースを検討してください。

https://linkfy.to/IANA-MIME-Types

cURLリクエストでContent-Typeを指定するには、-Hフラグを使用できます。たとえば、アプリケーション/ JSONのMIMEタイプを送信しましょう。

カール-NS役職-NS {{ユーザー名:linuxhint、パスワード:password} -NSコンテンツタイプ:アプリケーション/json https://linuxhint.com/制限付き/login.php

上記は、JSONオブジェクトを指定されたURLに送信することを指定しています。これを使用して、JSONファイルから値を読み取ったり、生として送信したりできます。

ファイルからデータを読み取る方法

コマンドラインでcURLを使用してリクエストを行いたいが、送信するデータがファイルに保存されているとします。 Content-Typeを使用してメディアタイプを指定し、データを含むファイルパスを渡すことができます。この例では、JSONオブジェクトの使用について説明します。

JSONファイル(data.json)には、次の値が含まれています。

{{
「ユーザー名」'linuxhint'
'パスワード''パスワード'
}

このデータをJSONファイルから送信するには、次のコマンドに示すように、-dを使用してファイル名を渡すことができます。

カール-NS役職-NSコンテンツタイプ:アプリケーション/json-NS @data.json https://linuxhint.com/制限付き/login.php

–data-binaryオプションを使用することもできます。

カール-NS役職-NSコンテンツタイプ:アプリケーション/json--data-binary @ //ユーザー/data.json https://linuxhint.com/制限付き/login.php

テキストファイルを使用してデータを送信することもできます。指定する必要があるのは、テキスト/プレーンとしてのContent-Typeだけです。

たとえば、次の値を含むテキストファイル(data.txt)

ユーザー名= linuxhintパスワード=パス​​ワード

cURLコマンドを使用して、リクエストを次のように送信するだけです。

カール-NS役職-NSコンテンツタイプ:テキスト/プレーン-NSdata.txt https://linuxhint.com/制限付き/login.php

XML、HTMLなど、使用できる他のファイルタイプを使用できます。

結論

このチュートリアルでは、POSTリクエストを作成し、さまざまな形式でデータを渡す方法について説明しました。非常に強力であることに加えて、cURLも非常に柔軟であることを覚えておくとよいでしょう。オプションのコレクションを1つのコマンドに組み合わせて、強力なリクエストを作成できます。詳細については、cURLのドキュメントがよく書かれているのでお勧めします。

https://curl.se/docs/

読んでいただきありがとうございます。cURLをお楽しみください。