實際上,我想閱讀搜索查詢以後的內容,完成以後。 問題在於URL僅接受POST
方法,而且對GET
方法不執行任何操做... php
我必須在domdocument
或file_get_contents()
的幫助下閱讀全部內容。 有什麼方法可讓我使用POST
方法發送參數,而後經過PHP
讀取內容? html
若是要那樣的話,還有另外一個CURL方法。 api
一旦掌握了PHP curl擴展的工做方式(將各類標誌與setopt()調用結合在一塊兒),這將很是簡單。 在這個例子中,我有一個變量$ xml,它保存了我準備發送的XML-我將把它的內容發佈到例子的測試方法中。 數組
$url = 'http://api.example.com/services/xmlrpc/'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); //process $response
首先咱們初始化鏈接,而後使用setopt()設置一些選項。 這些告訴PHP咱們正在發出一個發佈請求,而且咱們正在發送一些數據,並提供數據。 CURLOPT_RETURNTRANSFER標誌告訴curl向咱們提供輸出,做爲curl_exec的返回值,而不是輸出它。 而後咱們進行呼叫並關閉鏈接-結果在$ response中。 服務器
還有更多可使用的 app
<?php $fields = array( 'name' => 'mike', 'pass' => 'se_ret' ); $files = array( array( 'name' => 'uimg', 'type' => 'image/jpeg', 'file' => './profile.jpg', ) ); $response = http_post_fields("http://www.example.com/", $fields, $files); ?>
點擊這裏瞭解詳情 dom
若是您有機會使用Wordpress來開發應用程序(這其實是得到受權,信息頁等的便捷方法,即便是很是簡單的東西),也可使用如下代碼段: curl
$response = wp_remote_post( $url, array('body' => $parameters)); if ( is_wp_error( $response ) ) { // $response->get_error_message() } else { // $response['body'] }
它使用不一樣的方式來發出實際的HTTP請求,具體取決於Web服務器上可用的內容。 有關更多詳細信息,請參見HTTP API文檔 。 wordpress
若是您不想開發自定義主題或插件來啓動Wordpress引擎,則能夠在wordpress根目錄下的獨立PHP文件中執行如下操做: 函數
require_once( dirname(__FILE__) . '/wp-load.php' ); // ... your code
它不會顯示任何主題或輸出任何HTML,只需使用Wordpress API便可!
我在尋找相似的問題,而且找到了一種更好的方法。 因此就這樣。
您只需將如下行放在重定向頁面上(例如page1.php)。
header("Location: URL", TRUE, 307); // Replace URL with to be redirected URL, e.g. final.php
我須要它來重定向REST API調用的POST請求。 該解決方案可以使用發佈數據以及自定義標頭值進行重定向。
這是參考連接 。
我使用如下函數使用curl發佈數據。 $ data是要發佈的字段數組(將使用http_build_query正確編碼)。 使用application / x-www-form-urlencoded對數據進行編碼。
function httpPost($url, $data) { $curl = curl_init($url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); curl_close($curl); return $response; }
@Edward提到能夠省略http_build_query,由於curl將正確編碼傳遞給CURLOPT_POSTFIELDS參數的數組,可是建議在這種狀況下,數據將使用multipart / form-data進行編碼。
我將此函數與指望使用application / x-www-form-urlencoded編碼的數據的API結合使用。 這就是爲何我使用http_build_query()。