我需要编写一个php脚本,它会向我的PhantomJs服务器发出POST请求,并在收到响应后调用一些回调函数。
假设这是我的phantomjs服务器:
var server, service;
server = require('webserver').create();
service = server.listen(8080, function (request, response) {
//do_something_heavy_with_request_data_here
response.statusCode = 200;
response.write("{status: success, data: data}");
response.close();
});
所以从我的php脚本我需要向http://localhost:8080
发出请求,当phantomjs完成计算并发送响应时,触发一个回调函数。
我找到了这个主题:How do I make an asynchronous GET request in PHP?。这里有用吗?我正在考虑这种卷曲方法,但不知道如何让所有这些一起运行,因为我是一个完整的php初学者:How do I make an asynchronous GET request in PHP?。
答案 0 :(得分:1)
您可以使用cURL
。 http://www.php.net/manual/en/book.curl.php这是手册。没有什么复杂的。
<?php
/**
* Send a POST requst using cURL
* @param string $url to request
* @param array $post values to send
* @param array $options for cURL
* @return string
*/
function curl_post($url, array $post = NULL, array $options = array())
{
$defaults = array(
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_URL => $url,
CURLOPT_FRESH_CONNECT => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FORBID_REUSE => 1,
CURLOPT_TIMEOUT => 4,
CURLOPT_POSTFIELDS => http_build_query($post)
);
$ch = curl_init();
curl_setopt_array($ch, ($options + $defaults));
if( ! $result = curl_exec($ch))
{
trigger_error(curl_error($ch));
}
curl_close($ch);
return $result;
}
?>
这是一个符合您需求的示例代码。