实际上,我想阅读搜索查询以后的内容,完成以后。 问题在于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()。