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

PHPで配列の同一性(集合のチェック)

AとBという配列があり、A⊂B つまりは集合のような関係を確かめたいときに下記のようなメソッドを使います。  

no image

php5.6のインストール+cake3でのbake

cake3を動かしたい場合、PHP5.4以上でないと動きません。 2016年1月現在、CentOS6でyumでPHPをインストールする場合、php5.3ですので、5.4以上を入れる場合、別のリポジトリ …

no image

emptyの扱いに関して

PHPで空白や存在確認として便利なemptyですが、乱用すると意図しない動きをすることがあるケースが多々あります。 Contents1 emptyの挙動に関して2 数値の03 検索などの全判定と値のな …

no image

ロケール情報について

本日、csvファイルを読み込む処理を行っていたんですが、コンソールからコマンドを打つと化けずに、ウェブ上で見ると化けるという現象が発生。 csv,プログラムともに文字コードがutf8で統一していること …

no image

herokuでのhttpd.conf設定

前回の記事でLet’s EncryptでSSL設定する場合、 http://ドメイン/.well-known/ というURLにアクセスする必要があります。 ただherok …

アーカイブ