[PHP]POSTリクエストした結果を取得する

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リクエストのストリームに変換をかけたものを渡します。


This entry was posted in: PHP. Bookmark the ➜ permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)