ブログ

【PHP】HTTPでPOST送信

PHPをつかったPOST送信。

検索すればいろいろ見つかります。
file_get_contentsを使ってPHPファイルからPHPファイルにデータを送信[POST]する
PHP の file_get_contents でステータスコードを取得する

これらをまとめて・・・

//POSTデータ
$data = array(
  "name1" => "ぽすとでーた1",
  "name2" => "POST DATA2",
);

$data = http_build_query($data);

$header = array(
  "Content-Type: application/x-www-form-urlencoded",
  "Content-Length: " . strlen($data)
);
$header = implode("\r\n", $header);

$context = array(
  "http" => array(
    "method"  => "POST",
    "header"  => $header,
    "content" => $data,
    "ignore_errors" => true,
  )
);

$response_body = file_get_contents("http://www.example.com", false, stream_context_create($context));
$response_header = $http_response_header;
    
if(strpos($response_header[0], '200') === false ) {
  //エラー
}

//通信OK!!

良く忘れるのが、API等を使った場合にエラーメッセージを受け取るパラメータ

"ignore_errors" => true,

「Bad Request 400」だけじゃエラーの原因わかりませんからね。