PHPで外部にあるAPIに対してPOSTリクエストする方法です。
※GETリクエストは省きます。
参考URL => 千馬力 WEBプログラミングの技術ログ – PHP:stream_context_createメソッドを使ってPOST送信する
ソースコード
<?php # No.1 $data = array( "key1" => "value1", "key2" => "value2" ); # No.2 $data = http_build_query( $data , "" , "&" ); # No.3 //header $header = array( "Content-Type: application/x-www-form-urlencoded", "Content-Length: ".strlen($data) ); $context = array( "http" => array( "method" => "POST", "header" => implode("\r\n", $header), "content" => $data ) ); # No.4 $url = "http://www.hogehoge.com/post.php"; # No.5 echo file_get_contents( $url , false , stream_context_create( $context ) ); ?>
解説
# No.1
はじめに変数[$data]に対して
POSTするデータを連想配列で格納します。
# No.2
次に関数[http_build_query]を用いて
最初に作った連想配列をURLエンコードされた
HTTPクエリ文字列に変換をかけます。
(『key1=value1&key2=value2』の様な形になります)
# No.3
HTTPリクエストデータの生成が完了したら、
送信情報の作成を行います。
# No.4
対象となるAPIのURLを指定します。
# No.5
関数[file_get_contents]の引数に対して
No.4で指定したURLと
No.3で生成されたHTTPリクエストデータを
関数[stream_context_create]を使用して
HTTPリクエストのストリームに変換をかけたものを渡します。