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

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

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

no image

PHPspreadsheet

自分がプログラミングをやりはじめたきっかけはExcelVBAでした。 あれから10年以上の時が流れたのですが、簡易的なデータとしてはやはりExcelを使うことが多いですね。 PythonやJavaSc …

no image

cakeでの多対多を含んだ検索に関して

cakeを使って多対多を実現する方法はこのエントリーで紹介しました。 が、多対多を含む検索をする場合は一筋縄ではいかず結構面倒くさいです。 通常cakeで検索を行う場合、 ‘conditi …

no image

jenkinsでのPHPのCIに関して

PHPでのjenkinsに関して。 PHPでのjenkinsといっても基本Javaなどと変わらないと思います。 何らかのトリガーでjenkinsのjobをビルド(一連のタスク)させる ビルドの内容はソ …

no image

エラーハンドリング

エラーが起きた時にPHPだと画面に出ますが(出ない場合は画面が白くなります)、これを検知し、ログに吐いたり任意の処理をできるのがエラーハンドリングです。 フレームワークなどにはほぼこの仕組みが内在して …

アーカイブ