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

首頁 > 網(wǎng)站 > 建站經(jīng)驗 > 正文

使用WP_Http在WordPress發(fā)起HTTP Request

2024-04-25 20:30:42
字體:
供稿:網(wǎng)友

 在PHP中發(fā)起HTTP請求并不是很難,有很多種方法:使用fopen() 函數(shù),使用cURL 擴展,使用文件操作函數(shù)如fsockopen() 和fwrite()等,但是問題是各種方法所依賴的服務(wù)器的配置把不同,有些服務(wù)器可能無法支持,不過WordPress自身開發(fā)了新的API WP_Http使得WordPress在所有環(huán)境下都非常容易發(fā)起HTTP Request。

  PHP類:WP_Http

  WordPress 2.7開始引入了一個新的PHP Class:WP_Http(在wp-includes目錄http.php文件中)。這個Class的強大之處是它會檢測服務(wù)器的情況,選擇最好的方法去實現(xiàn)HTTP請求,所以我們自己無須去檢測HTTP擴展,fopen(),是否存在curl_init()函數(shù),這個Class都會包辦這些檢測。

  這個Class的基本使用方法如下:

$request = new WP_Http;$result = $request->request( 'http://blog.wpjam.com/' );

  返回的變量$result是一個數(shù)組,它包含以下東西:

  • ‘headers’: 返回的 headers 數(shù)組,如 “x-powered-by” => “PHP/5.2.1″
  • ‘body’: 返回字符串,和你使用瀏覽器看到一樣的。
  • ‘response’: 返回代碼的數(shù)組,如果獲取了這個代碼 (‘code’=>200, ‘message’=>’OK’),說明你的 HTTP Request 成功了。
  • ‘cookies’: 返回 cookie 信息數(shù)組。

  下面是具體的例子:

  簡單的GET請求

  假設(shè)你想在一些RESTFul的API搜索所有含有你ID的信息:

$url = 'http://your.api.url/?q=@denishua';$request = new WP_Http;$result = $request->request( $url );$json = $result['body'];

  接下來就是 JSON 解碼的事情了。

  基本的POST請求

  如過你需要傳遞一些參數(shù),如nick=’denishua’ 和mood=’happy’,可以使用POST方法:

$body = array(   'nick' => 'denishua',   'mood' => 'happy');$url = 'http://your.api.url/';$request = new WP_Http;$result = $request->request( $url, array( 'method' => 'POST', 'body' => $body) );// test $result['response'] and if OK do something with $result['body']

  需要驗證的POST請求

  假如你想在一些RESTFul的API提交一些信息,你首先需要進行驗證,我們需要發(fā)送一個含有用戶名和密碼對的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 ) );

  翻譯自 How To Make HTTP Requests with WordPress

  WordPress加入WP_Http類之后,就放棄了Snoopy這個PHP Class,所以建議大家給WordPress寫插件的時候,盡量使用WP_Http來做HTTP請求。

  WordPress已經(jīng)可以認為是PHP框架了,它含有各種類和方法,并且接口和方法使用非常簡單,并且文檔化,所以使用WordPress作為PHP框架進行開發(fā),或者抽取WordPress中的一些類進行開發(fā)會起到事半功倍的效果。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丰顺县| 文登市| 南江县| 汝南县| 闽清县| 珠海市| 辉县市| 平顺县| 英德市| 汾西县| 陈巴尔虎旗| 清水县| 威宁| 建德市| 策勒县| 平阴县| 岳阳县| 渝北区| 内丘县| 交城县| 蒙山县| 独山县| 大悟县| 武威市| 若尔盖县| 界首市| 岑溪市| 汾西县| 习水县| 克拉玛依市| 塔河县| 自治县| 海淀区| 卢龙县| 准格尔旗| 秭归县| 微博| 阿瓦提县| 敦煌市| 富蕴县| 贵定县|