ホームページ >バックエンド開発 >PHPチュートリアル >WordPress で http リクエストを送信するための関連機能の分析
PHP で HTTP リクエスト (GET / POST) を送信するには、file_get_contents() 関数、fopen() 関数、cURL 拡張子など、さまざまな方法がありますが、サーバーの状況が異なるため、すべての状況に対応できるわけではありません。 Http リクエストを送信するには一連の判断が必要であり、非常に面倒です。
ただし、WordPress には、互換性を判断するのに役立つ WP_Http クラスが用意されており、内部の関数を呼び出すだけで Http リクエストの送信を完了できます。以下に、このクラスでよく使われる機能を簡単に紹介します。
GET リクエストを送信する
/** *使用 WP_Http 类发送简单的 GET 请求 *http://www.endskin.com/wp_http/ */ $http = new WP_Http; $result = $http->request( 'http://www.endskin.com' );
上記のコードは、リクエストのターゲット情報を $result 変数に格納します。 $result は次のキーを持つ配列です:
つまり、ターゲットの内容は $result['body'] です
POST リクエストを送信します
POST リクエストを送信する必要がある場合は、 use WP_Http-> request() の 2 番目のパラメータは、以下の例を参照してください:
/** *使用 WP_Http 类发送简单的 POST 请求 *http://www.endskin.com/wp_http/ */ $http = new WP_Http; $post = array( 'name' => '斌果', 'blog' => 'http://www.bgbk.org' ); $result = $http->request( 'http://www.endskin.com', array( 'method' => 'POST', 'body' => $post ) );
返される $result 変数の内容については、上記の GET リクエストを参照してください。
検証が必要な POST リクエスト
何らかの情報を RESTFul API に送信したい場合は、以下で説明するように、ユーザー名とパスワードのペアを含む Base64 でエンコードされた文字列を API に送信する必要があります。 :
// You would edit the following: $username = 'denishua'; // login $password = '123456'; // password $message = "I'm posting with the API"; // Now, the HTTP request: $api_url = 'http://your.api.url/update.xml'; $body = array( 'status' => $message ); $headers = array( 'Authorization' => 'Basic '.base64_encode("$username:$password") ); $request = new WP_Http; $result = $request->request( $api_url , array( 'method' => 'POST', 'body' => $body, 'headers' => $headers ) );
WordPress が WP_Http クラスを追加した後、Snoopy PHP クラスは廃止されました。そのため、WordPress 用のプラグインを作成するときは、WP_Http を使用して HTTP リクエストを行うようにすることをお勧めします。
上記では、WordPress で http リクエストの送信を実装するための関連関数の分析を、関連コンテンツも含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。