簡単にHTTPリクエストのためにカールを使う方法


元来adityasridhar.com
すべての開発者は、効率的にツールの束を知る必要があります.そのような道具の中のカール😄
この記事では、curlをHTTPリクエストを作成する方法を説明します.

カールとは
Curlは基本的に、指定されたURLのためにインターネットプロトコルを使用してデータを転送するのに使用されます.
Curlはクライアント側のプログラムです.curlという名前の場合、Cはクライアントを表し、URLはURLでcurlの動作を示します.
curlプロジェクトには、curlコマンドラインとlibcurlライブラリがあります.この記事ではcURLコマンドラインに焦点を合わせます.
カールは、HTTP、FTP、SMTP、telnetなどのようなインターネットプロトコルの束を扱う.
この記事では、curlからHTTPリクエストを作成するだけで対処します.

前もって
コマンドを使用してシステムにCURLをインストールしているか確認できます.
curl --version
CURLがあなたのシステムにないならば、あなたはこのURL https://curl.haxx.se/dlwiz/からそれをインストールすることができます.

HTTPリクエストのためにcurlを使う方法
私はNodeJSを使用して2つのREST APIのエンドポイントを構築した.つのエンドポイントはリクエストをサポートし、他のエンドポイントはPOSTリクエストをサポートします.
この記事では、curlを使用してGETおよびPOSTエンドポイントを呼び出します.
このgithub repoからローカルにNODEJSコードをクローンしてください
RePoはNODEJSコードをクローン化して走らせる方法に関する指示をします.
コードをクローニングした後、プロジェクトフォルダに移動し、次のコマンドを使用してアプリケーションを起動します.
node server.js
アプリケーションはlocalhostポート3000で動作します.

リクエストを取得する
アプリケーションは、取得エンドポイント/サンプルがあります.このエンドポイントは、クエリパラメータをnameと呼びます.
curlを使ってこのAPIエンドポイントを呼びましょう.
新しいコマンドプロンプトに移動し、次のコマンドを入力します
curl http://localhost:3000/sample?name=aditya
これは次の出力を行います
{"text":"Hello aditya"}
また、curlを使用して冗長な結果を得ることができます.次のコマンドを実行します
curl -v http://localhost:3000/sample?name=aditya
- Vは冗長出力を得るために使われる.
これは次の出力を行います.
*   Trying ::1...
* TCP_NODELAY set
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 3000 (#0)
> GET /sample?name=aditya HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.55.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Thu, 15 Nov 2018 12:36:21 GMT
< Connection: keep-alive
< Content-Length: 23
<
{"text":"Hello aditya"}* Connection #0 to host localhost left intact
詳細な結果は、ステータスコード、コンテンツタイプ、コンテンツの長さなどの詳細があります.HTTPリクエスト中に何が起こったかのより良いアイデアを得るために使用できます.
ステータスコードは、HTTPリクエストが成功したことを示す200です.
レスポンスの内容タイプはJSONです.
content lengthはレスポンスのサイズを示す.ここでレスポンスサイズは23バイトです.

カールとPOSTリクエスト
アプリケーションは、ポストエンドポイント/テストしています.このエンドポイントは、次の形式のポストボディを受け入れます.
{
    "value":"nodejs"
}
ポストコールを行うには、次のコマンドを入力します.
curl --header "Content-Type: application/json" -d "{\"value\":\"node JS\"}" http://localhost:3000/test
-- headerはPOST本体の内容型を示します.こちらはJSONです.
- dは、ポスト本体の内容を送信するために使用されます.
このコマンドの出力は以下の通りです.
{"text":"Post Request Value is  node JS"}
詳細な結果を得るには、次のコマンドを使用します
curl -v --header "Content-Type: application/json" -d "{\"value\":\"node JS\"}" http://localhost:3000/test
出力は以下の通りです.
*   Trying ::1...
* TCP_NODELAY set
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 3000 (#0)
> POST /test HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.55.1
> Accept: */*
> Content-Type: application/json
> Content-Length: 19
>
* upload completely sent off: 19 out of 19 bytes
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Thu, 15 Nov 2018 13:03:37 GMT
< Connection: keep-alive
< Content-Length: 41

コマンドラインによって提供される追加オプション
既存のヘッダーは- hオプションを使用して変更することができます.
ユーザーエージェントのヘッダーをダミーエージェントに変更するには、次のコマンドを実行します
curl -v -H "User-Agent:Dummy Agent" http://localhost:3000/sample?name=adi
上記のコマンドの出力は以下の通りです
*   Trying ::1...
* TCP_NODELAY set
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 3000 (#0)
> GET /sample?name=adi HTTP/1.1
> Host: localhost:3000
> Accept: */*
> User-Agent:Dummy Agent
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Thu, 15 Nov 2018 13:33:27 GMT
< Connection: keep-alive
< Content-Length: 20
<
{"text":"Hello adi"}* Connection #0 to host localhost left intact
上記の出力では、ユーザエージェントがダミーエージェントになったことがわかります.
では、ホストヘッダーを削除したいとしましょう.これは次のコマンドを実行することによって行うことができます.
curl -v -H "Host:" http://localhost:3000/sample?name=adi
上記のコマンドの出力は以下で与えられます、そして、ホストがもうそこにいないのを見ることができます
*   Trying ::1...
* TCP_NODELAY set
* connect to ::1 port 3000 failed: Connection refused
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 3000 (#0)
> GET /sample?name=adi HTTP/1.1
> User-Agent: curl/7.55.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Thu, 15 Nov 2018 13:38:37 GMT
< Connection: keep-alive
< Content-Length: 20
<
{"text":"Hello adi"}* Connection #0 to host localhost left intact
- Hは新しいヘッダを追加するのにも使えます.これは構文を使用することができます

参考文献
カールの文書化:https://ec.haxx.se/
HTTPリクエストhttps://ec.haxx.se/http.htmlのためのcurlの使用に関する詳細な情報

懇談する😄
これで、基本的なHTTPリクエストに対してcurlの使い方を知っています.この記事は、カールが実際に行うことができるものの非常に小さな部分をカバーします.
Curlについて詳しく知るには、上記のドキュメントのリンクを確認できます.
お気軽に私と接続したり、私に従ってください.

あなたがこのポストが好きであるならば、あなたは他の同様のポストのために私のウェブサイトhttps://adityasridhar.comをチェックアウトすることができます