实际上,我想阅读搜索查询之后的内容,完成之后。 问题在于URL仅接受POST方法,并且对GET方法不执行任何操作...
我必须在domdocument或file_get_contents()的帮助下阅读所有内容。 有什么方法可以让我使用POST方法发送参数,然后通过PHP读取内容?
#1楼
如果要那样的话,还有另一个CURL方法。
一旦掌握了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中。
#2楼
还有更多可以使用的
$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);
?>
#3楼
如果您有机会使用Wordpress来开发应用程序(这实际上是获得授权,信息页等的便捷方法,即使是非常简单的东西),也可以使用以下代码段:
$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根目录下的独立PHP文件中执行以下操作:
require_once( dirname(__FILE__) . '/wp-load.php' );
// ... your code
它不会显示任何主题或输出任何HTML,只需使用Wordpress API即可!
#4楼
我在寻找类似的问题,并且找到了一种更好的方法。 所以就这样。
您只需将以下行放在重定向页面上(例如page1.php)。
header("Location: URL", TRUE, 307); // Replace URL with to be redirected URL, e.g. final.php
我需要它来重定向REST API调用的POST请求。 该解决方案能够使用发布数据以及自定义标头值进行重定向。
#5楼
我使用以下函数使用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()。