skillup

技術ブログ

PHP サーバー・ネットワーク

form以外でのPOST送信(というかHTTP通信全般)

投稿日:2018年8月18日 更新日:

前回の記事に引き続きですが、APIを叩く側はformでデータを送るのではなく、コードの中にPOSTする処理を書きます。

選択肢としては

  1. curlコマンドを使う
  2. file_get_contentsを使う
  3. Guzzleなどのライブラリを使う

などの選択肢があります。file_get_contentsの方がお手軽・・ですが、HTTPリクエストを正確に行う場合はcurlの方が正しいようです。

curlコマンドの活用

実際はほとんどオプションの設定になるので、細かいオプションに関しては下記のリンクで説明されています。

http://php.net/manual/ja/function.curl-setopt.php

file_get_contentsを使ったPOST送信

元々POSTを送る昨日はないですが、stream_context_createと組み合わせることで、POSTを送ることができます。

GuzzleなどのHTTPクライアント

こちらの方がオプションなどがしっかりと整っており、エラーハンドリングなどもできるので有効かと思います。

http://docs.guzzlephp.org/en/stable/

ストリームについて・・

stream_content_createで「ストリーム」を作っています。ファイルの入出力関連でよく聞きますが、あまり理解していないのでメモ。

もちろんPHP独自の概念ではなく、プログラミング全般に通づる考え方のようで検索するとJavaのものが多いですね。

色々調べましたが、抽象的な説明が多く、はっきりとは理解できませんでした。

あらゆる形式の入出力に対応したデータをバイト単位で読み書きする「仕組み」

みたいなもんでしょうか。

ファイルなんかの読み込みに関してはデータサイズが大きいため、中間のストリームを用意してここを媒介にしてファイル読み込みを行います。

ファイルを読み込む、ファイルポインタというのはこのストリーム上のメモリの位置を示したものという理解をしています。

入出力はファイルが多いですが、それ以外にもキーボードからの入力みたいなそういったものも入ってきます。

参考リンク

curl

PHP cURLの色々な使い方

【PHP入門】cURL関数の使い方をマスターしよう!

file_get_contents

file_get_contentsでPOSTデータ送信

-PHP, サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

docker メモ

まだ数時間しか触ってませんが、なんとなくのイメージなど Vagrantと違いOSではなく主にミドルウェア(httpd,mysqlなど)を手軽に構築する仮想環境ツール Linuxの中でしか動かない 起動 …

no image

セッションハイジャック

今回はセッションハイジャックについて。WEB系では必須といえるでしょう。 Contents1 セッションハイジャックとは?2 被害3 対策4 Cookieについて4.1 Domain4.2 Path4 …

no image

IaC(Infrastructure as Code)に関して

近年ではインフラ環境もコード化しておいて、コマンドで起動や構築できることが一般的ですね。 ansibleやdockerなどは色々と使っていましたが、実際のインフラ環境では2020年6月現在AWSを使う …

no image

sudoとsuについて

基本的なことの復習。 Contents1 su2 sudo2.1 wheel su Switch User。読んで字のごとくユーザーを切り替えるコマンドです。 su suzukiでユーザーsuzuki …

no image

Laravel5.4インストール&ルーティング

来月からの仕事でLaravel5.4を使うことになったのでテストがてら自宅で勉強。 とりあえず下記リンクが参考になりました。 Laravel5.4でシンプルなCMSを作るチュートリアル 初めてのLar …