国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

在WordPress中實(shí)現(xiàn)發(fā)送http請(qǐng)求的相關(guān)函數(shù)解析

2024-05-04 23:41:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了在WordPress中實(shí)現(xiàn)發(fā)送http請(qǐng)求的相關(guān)函數(shù)解析,包括使用WP_Http類中的函數(shù)來(lái)發(fā)送post或get請(qǐng)求的方法,需要的朋友可以參考下
 

在 PHP 中發(fā)送 Http 請(qǐng)求(GET / POST)有很多的方法,比如 file_get_contents() 函數(shù)、fopen() 函數(shù)或者 cURL 擴(kuò)展,但由于服務(wù)器的情況不同,所以不一定會(huì)兼容所有情況,這樣想要發(fā)送 Http 請(qǐng)求則需要經(jīng)過(guò)一系列的判斷,非常麻煩。

不過(guò) WordPress 提供了一個(gè) WP_Http 的類來(lái)幫你做好兼容性的判斷,你只需要調(diào)用里邊的函數(shù)就能完成發(fā)送 Http 請(qǐng)求。下面我就簡(jiǎn)單的介紹一下這個(gè)類的常用函數(shù)。

發(fā)送 GET 請(qǐng)求

/** *使用 WP_Http 類發(fā)送簡(jiǎn)單的 GET 請(qǐng)求 *http://www.endskin.com/wp_http/*/$http = new WP_Http;$result = $http->request( 'http://www.endskin.com' );

上邊的代碼就把請(qǐng)求目標(biāo)的信息存儲(chǔ)到 $result 變量里了,$result 是一個(gè)數(shù)組,它有一下的鍵:

  • headers:返回的 headers 信息,是一個(gè)數(shù)組
  • body:目標(biāo)的內(nèi)容,和在瀏覽器里直接看是一樣的
  • response:返回的代碼,如果請(qǐng)求成功會(huì)返回 array( 'code'=>200, 'message'=>'OK' )
  • cookies:Cookie 信息,是一個(gè)數(shù)組

也就是說(shuō)目標(biāo)的內(nèi)容就是 $result['body']

發(fā)送 POST 請(qǐng)求

如果需要發(fā)送 POST 請(qǐng)求就得用到 WP_Http->request() 的第二個(gè)參數(shù)了,下面看例子:

/** *使用 WP_Http 類發(fā)送簡(jiǎn)單的 POST 請(qǐng)求 *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 變量?jī)?nèi)容請(qǐng)參考上邊的 GET 請(qǐng)求。

需要驗(yàn)證的 POST 請(qǐng)求

假如你想在一些 RESTFul 的 API 提交一些信息,你首先需要進(jìn)行驗(yàn)證,我們需要發(fā)送一個(gè)含有用戶名和密碼對(duì)的 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 寫(xiě)插件的時(shí)候,盡量使用 WP_Http 來(lái)做 HTTP 請(qǐng)求。



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁明县| 保康县| 潼关县| 宜都市| 交城县| 牡丹江市| 临洮县| 共和县| 安西县| 双桥区| 金坛市| 普格县| 兴隆县| 陆丰市| 恭城| 禄劝| 克拉玛依市| 禄丰县| 蒲江县| 五大连池市| 阳泉市| 玉田县| 皋兰县| 花垣县| 特克斯县| 博兴县| 西吉县| 务川| 河间市| 临安市| 绍兴县| 喀喇沁旗| 红原县| 周至县| 嵩明县| 紫云| 承德市| 新沂市| 平邑县| 三原县| 冷水江市|