在 PHP 中傳送 Http 請求 (GET / POST) 有很多的方法,比如 file_get_contents() 函式、 fopen() 函式或者 cURL 擴充套件,但由於伺服器的情況不同,所以不一定會相容所有情況,這樣想要傳送 Http 請求則需要經過一系列的判斷,非常麻煩。

不過 WordPress 提供了一個 WP_Http 的類來幫你做好相容性的判斷,你只需要呼叫裡邊的函式就能完成傳送 Http 請求。下面我就簡單的介紹一下這個類的常用函式。

傳送 GET 請求

/**

    *使用 WP_Http 類傳送簡單的 GET 請求

    *https://www.weixiaoduo.com/wp_http/

*/

$http=newWP_Http;

$result=$http->request('http://www.weixiaoduo.com');

上邊的程式碼就把請求目標的資訊儲存到 $result 變數裡了,$result 是一個陣列,它有一下的鍵:

  • headers:返回的 headers 資訊,是一個陣列
  • body:目標的內容,和在瀏覽器裡直接看是一樣的
  • response:返回的程式碼,如果請求成功會返回 array( 'code'=>200, 'message'=>'OK' )
  • cookies:Cookie 資訊,是一個陣列

也就是說目標的內容就是 $result['body']

傳送 POST 請求

如果需要傳送 POST 請求就得用到 WP_Http->request() 的第二個引數了,下面看例子:

/**

    *使用 WP_Http 類傳送簡單的 POST 請求

    *https://www.weixiaoduo.com/wp_http/

*/

$http=newWP_Http;

$post=array('name'=>'斌果','blog'=>'http://www.bgbk.org');

$result=$http->request('http://www.weixiaoduo.com',array('method'=>'POST','body'=>$post));

返回的 $result 變數內容請參考上邊的 GET 請求。

更多此類的用法這裡就不細說了,需要的請參考:http://codex.WordPress.org/HTTP_API