cURLを用いたHTTP POSTおよびGETのサンプルコード (日本語)
cURLを用いたHTTP POSTおよびGETの解説 (日本語)
Linuxにおけるcurlコマンドは、URLを指定してファイルの転送やHTTPリクエストを行うためのコマンドラインツールです。この解説では、HTTP POSTとHTTP GETの2つのメソッドについて、curlコマンドを使用してどのように実行できるかを説明します。
HTTP GET
HTTP GETは、サーバーからデータを取得するためのメソッドです。URLにクエリパラメータを付与して、サーバーにリクエストを送信します。
curl [URL]
例:
curl http://example.com/api/data?param1=value1¶m2=value2
HTTP POST
HTTP POSTは、サーバーにデータを送信するためのメソッドです。リクエストボディにデータをエンコードして送信します。
curl -X POST [URL] -d "data=value"
curl -X POST http://example.com/api/submit -d "name=John&[email protected]"
オプションの説明
- -X POST: HTTP POSTメソッドを指定します。
- -d: リクエストボディにデータを指定します。
- -H: HTTPヘッダーを指定します。
- -o: 出力をファイルに保存します。
- -v: 詳細な出力を行います。
curl http://example.com/api/data?param1=value1¶m2=value2
- 解説:
http://example.com/api/data
: 対象のURL?param1=value1¶m2=value2
: クエリパラメータ
curl -X POST http://example.com/api/submit -d "name=John&[email protected]"
- 解説:
-d "name=John&[email protected]"
: リクエストボディにデータを指定
- -H: HTTPヘッダーを指定
curl -H "Authorization: Bearer your_token" http://example.com/api/protected_data
- -u: HTTP認証情報を指定
curl -u username:password http://example.com/api/login
- -o: 出力をファイルに保存
curl http://example.com/image.jpg -o image.jpg
- -v: 詳細な出力を行う
curl -v http://example.com/
cURL以外のHTTPリクエスト方法 (日本語)
cURLはコマンドラインツールとして広く使用されていますが、プログラミング言語から直接HTTPリクエストを行うためのライブラリやモジュールも豊富に存在します。以下に、いくつかの代表的な方法を紹介します。
Python
- requests: シンプルで使いやすいHTTPライブラリ。
import requests
response = requests.get('http://example.com')
print(response.text)
- urllib: Pythonの標準ライブラリ。
import urllib.request
with urllib.request.urlopen('http://example.com') as response:
html = response.read()
print(html.decode('utf-8'))
JavaScript (Node.js)
- axios: PromiseベースのHTTPクライアント。
const axios = require('axios');
axios.get('http://example.com')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
- fetch: ブラウザのAPIであり、Node.jsでも使用可能。
fetch('http://example.com')
.then(response => response.text())
.then(text => {
console.log(text);
})
.catch(error => {
console.error(error);
});
Java
- Apache HttpClient: 汎用的なHTTPクライアント。
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpCli ents;
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpGet httpGet = new HttpGet("http://example.com");
HttpResponse response = httpClient.execute(httpGet);
System.out.println(response.getStatusLine());
} catch (IOException e) {
e.printStackTrace();
}
Response response = client.newCall(request).execute(); System.out.println(response.body().string());
### C/C++
* **libcurl:** cURLライブラリのC言語バインディング。
```c
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "[h ttp://example.com](http://example.com)");
res = curl_easy_perform(curl);
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
curl_e asy_cleanup(curl);
}
return 0;
}
linux web-services curl