ホームページ >バックエンド開発 >PHPチュートリアル >cURL を使用せずに PHP で POST リクエストを送信し、応答を取得する方法

cURL を使用せずに PHP で POST リクエストを送信し、応答を取得する方法

DDD
DDDオリジナル
2024-12-29 01:55:09671ブラウズ

How to Send POST Requests and Retrieve Responses in PHP Without cURL?

PHP を使用した POST リクエストの送信

POST メソッドのみを受け入れるエンドポイントに遭遇した場合、結果のコンテンツにアクセスして読み取るのは困難な場合があります。この記事では、PHP を使用して POST リクエストを送信し、サーバーの応答を取得する実用的な方法について説明します。

CURL を使用しない方法:

CURL が実行可能なオプションではないシナリオの場合、PHP のネイティブ file_get_contents() 関数を利用した次のソリューションは、代替案:

$url = 'http://server.com/path';
$data = ['key1' => 'value1', 'key2' => 'value2'];

// Specify HTTP method and headers
$options = [
    'http' => [
        'header' => "Content-type: application/x-www-form-urlencoded\r\n",
        'method' => 'POST',
        'content' => http_build_query($data),
    ],
];

// Create stream context with POST data
$context = stream_context_create($options);

// Send POST request and retrieve response
$result = file_get_contents($url, false, $context);
if ($result === false) {
    // Handle error
}

var_dump($result);

このアプローチでは、指定されたオプションを使用して HTTP ストリーム コンテキストを構築し、指定された URL に POST リクエストを送信します。サーバーの応答は $result 変数に保存され、DOMDocument や file_get_contents() などのメソッドを使用してさらに処理するためのコンテンツへのアクセスを提供します。

ストリーム コンテキストの作成とカスタマイズの詳細については、PHP マニュアルを参照してください。 :

  • stream_context_create: https://www.php.net/manual/en/function.stream-context-create.php

以上がcURL を使用せずに PHP で POST リクエストを送信し、応答を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。