在WordPress中實作發送http請求的相關函數解析

WBOY
發布: 2016-07-29 09:08:22
原創
1021 人瀏覽過

在PHP 中發送Http 請求(GET / POST)有很多的方法,例如file_get_contents() 函數、fopen() 函數或cURL 擴展,但由於伺服器的情況不同,所以不一定會相容於所有情況,這樣想要發送Http 請求則需要經過一連串的判斷,非常麻煩。

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

發送GET 請求

/**
 *使用 WP_Http 类发送简单的 GET 请求
 *http://www.endskin.com/wp_http/
*/
$http = new WP_Http;
$result = $http->request( 'http://www.endskin.com' );
登入後複製

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

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

cookies:Cookie 訊息,是一個陣列

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

發送POST 請求

如果需要發送POST 請求就得用到WP_Http->request(Http-request(M)的第二個參數了,下面看範例:

/**
 *使用 WP_Http 类发送简单的 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 變數內容請參考上邊的GET 請求。

需要驗證的POST 請求

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

登入後複製

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

以上就介紹了在WordPress中實現發送http請求的相關函數解析,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。 🎜 🎜 🎜
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板