在 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