ホームページ >バックエンド開発 >PHPチュートリアル >WordPress で http リクエストを送信するための関連機能の分析

WordPress で http リクエストを送信するための関連機能の分析

WBOY
WBOYオリジナル
2016-07-29 09:08:221024ブラウズ

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 は次のキーを持つ配列です:

  • headers: 返されるヘッダー情報は配列です
  • body:ターゲットのコンテンツ。ブラウザで直接表示するのと同じです
  • 応答: リクエストが成功した場合に返されるコード、array('code'=>200, 'message'=>' OK' )
  • cookies: Cookie 情報は配列です

つまり、ターゲットの内容は $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 チュートリアルに興味のある友人に役立つことを願っています。

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