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でのメール送信&カレントディレクトリ

PHPの小ネタ集です。 Contents1 メールでの改行2 PHPでのカレントディレクトリ メールでの改行 メールで改行する場合、いつも\nでOKだったんですが、本日これで送信すると送れないというバ …

no image

cakePHP3インストール

PHP7に上がりましたが、それ以前にcakeがversion3になっていますね。 いずれはこれでリプレイスをしなくてはいけないので、今日とりあえずインストールしてみました。 原則としてcomposer …

no image

vimの小ネタ(主にテキスト置換系に関して)

前回に引き続き、またまたvimの小ネタなど Contents1 マクロ2 単純な置換3 改行系の置換4 一括置換 マクロ エディタ上である動作を記録させておきたい場合、q+任意の文字(例えばa)+任意 …

no image

ロケール情報について

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

no image

Webの高速化に関して

Webの高速化に関してメモ。 高速化って言っても幅広いんですけどね。自分が行なっている対策に関して。 一応LAMP環境を前提にしてます。 Contents1 一番大事なのは測定2 DB対策3 フロント …

アーカイブ