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の開発事情 (PHPBrew/ビルトインサーバー/Xdebug/PHPUnit/Composer)

私自身、プログラミングは好きなんですがあまり現代の流行の技術に興味がありません(汗) IT業界はドッグイヤーならぬ、マウスイヤーとも呼ばれているようで、常に最新技術の動向には目を光らせていく必要があり …

no image

Lambdaでの注意点

前に個人的な学習でLambdaを勉強しましたが、仕事で使う機会があり、気をつけるポイントを再度確認。 以前の学習リンク Amazon SESでの受信→S3→Lambdaでのメール転送 Contents …

no image

jenkinsでのSSH鍵認証&herokuからのソース取得

jenkinsでGitからソースを取得するときに鍵認証をかけている場合はそれ用の設定が必要になります。 基本的な考え方ですが、userがjenkinsだったときに、ssh鍵認証やherokuでどのよう …

no image

メール送信に関して その1 おおまかな送受信の仕組み

php-fpmを変えてから大分動きがよくなりましたね・・サーバーのレスポンスがはやい・・ 今回から数回に分けてメール送信の仕組みについて学習していこうと思います。 インフラ系の知識がやっぱり怪しいもん …

no image

Webの高速化に関して

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