在WordPress中實(shí)現(xiàn)發(fā)送http請求的相關(guān)函數(shù)解析
在 PHP 中發(fā)送 Http 請求(GET / POST)有很多的方法,比如 file_get_contents() 函數(shù)、fopen() 函數(shù)或者 cURL 擴(kuò)展,但由于服務(wù)器的情況不同,所以不一定會兼容所有情況,這樣想要發(fā)送 Http 請求則需要經(jīng)過一系列的判斷,非常麻煩。
不過 WordPress 提供了一個(gè) WP_Http 的類來幫你做好兼容性的判斷,你只需要調(diào)用里邊的函數(shù)就能完成發(fā)送 Http 請求。下面我就簡單的介紹一下這個(gè)類的常用函數(shù)。
發(fā)送 GET 請求
/** *使用 WP_Http 類發(fā)送簡單的 GET 請求 *http://www.endskin.com/wp_http/ */ $http = new WP_Http; $result = $http->request( 'http://www.endskin.com' );
上邊的代碼就把請求目標(biāo)的信息存儲到 $result 變量里了,$result 是一個(gè)數(shù)組,它有一下的鍵:
- headers:返回的 headers 信息,是一個(gè)數(shù)組
- body:目標(biāo)的內(nèi)容,和在瀏覽器里直接看是一樣的
- response:返回的代碼,如果請求成功會返回 array( 'code'=>200, 'message'=>'OK' )
- cookies:Cookie 信息,是一個(gè)數(shù)組
也就是說目標(biāo)的內(nèi)容就是 $result['body']
發(fā)送 POST 請求
如果需要發(fā)送 POST 請求就得用到 WP_Http->request() 的第二個(gè)參數(shù)了,下面看例子:
/** *使用 WP_Http 類發(fā)送簡單的 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 變量內(nèi)容請參考上邊的 GET 請求。
需要驗(yàn)證的 POST 請求
假如你想在一些 RESTFul 的 API 提交一些信息,你首先需要進(jìn)行驗(yàn)證,我們需要發(fā)送一個(gè)含有用戶名和密碼對的 base64 編碼的字符串給 API,詳細(xì)如下:
// 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 這個(gè) PHP Class,所以建議大家給 WordPress 寫插件的時(shí)候,盡量使用 WP_Http 來做 HTTP 請求。
相關(guān)文章
PHP數(shù)組與對象之間使用遞歸實(shí)現(xiàn)轉(zhuǎn)換的方法
這篇文章主要介紹了PHP數(shù)組與對象之間使用遞歸實(shí)現(xiàn)轉(zhuǎn)換的方法,涉及php數(shù)組與對象的相關(guān)操作技巧,需要的朋友可以參考下2015-06-06php實(shí)現(xiàn)字符串首字母轉(zhuǎn)換成大寫的方法
這篇文章主要介紹了php實(shí)現(xiàn)字符串首字母轉(zhuǎn)換成大寫的方法,涉及php中ucfirst及ucwords函數(shù)的使用技巧,需要的朋友可以參考下2015-03-03PHP中PDO連接數(shù)據(jù)庫中各種DNS設(shè)置方法小結(jié)
這篇文章主要介紹了PHP中PDO連接數(shù)據(jù)庫中各種DNS設(shè)置方法,結(jié)合實(shí)例形式總結(jié)分析了php常用的各種pdo連接數(shù)據(jù)庫技巧,需要的朋友可以參考下2016-05-05php中使用__autoload()自動(dòng)加載未定義類的實(shí)現(xiàn)代碼
當(dāng)PHP引擎遇到未實(shí)例化的類時(shí)就會觸發(fā)這個(gè)方法,當(dāng)然你的php代碼中要用到__autoload()才可以哦2013-02-02PHP實(shí)現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次)實(shí)例詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次),結(jié)合實(shí)例形式詳細(xì)分析了php針對二叉樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-04-04編寫PHP腳本來實(shí)現(xiàn)WordPress中評論分頁的功能
這篇文章主要介紹了編寫PHP腳本來實(shí)現(xiàn)WordPress中評論分頁的功能的方法,包括上一頁下一頁和導(dǎo)航式分頁功能的添加,需要的朋友可以參考下2015-12-12php str_replace替換指定次數(shù)的方法詳解
本篇文章主要介紹了php str_replace替換指定次數(shù)的方法,具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-05-05PHP執(zhí)行外部命令的函數(shù):exec(), system(), passthru(), sh
system()輸出并返回最后一行shell結(jié)果。exec()不輸出結(jié)果,返回最后一行shell結(jié)果,所有結(jié)果可以保存到一個(gè)返回的數(shù)組里面。passthru()只調(diào)用命令,把命令的運(yùn)行結(jié)果原樣地直接輸出到標(biāo)準(zhǔn)輸出設(shè)備上...2023-05-05