我在这个问题上做了一些阅读,我发现,在某一时刻,我想要的东西是可能的。在评论 #3 中,这显示了:
request.post = {
Name : "Jonathan Doe",
Age : "23",
Formula : "a + b == 13%!"
}
现在,这正是我向 PhantomJS 网络服务器发送 POST 请求时想要得到的。
我是这样发送的:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "localhost:8585");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
$data = array(
'ajaxUrl' => $ajaxUrl,
'analysisFile' => $analysisFile,
'businessId' => $businessId,
'website' => $website
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
..但我得到的请求看起来像这样(之后JSON.stringify
):
{ "headers" : { "Accept" : "*/*",
"Content-Length" : "555",
"Content-Type" : "multipart/form-data; boundary=----------------------------ad33c9f28b99",
"Expect" : "100-continue",
"Host" : "localhost:8585"
},
"httpVersion" : "1.1",
"method" : "POST",
"post" : "------------------------------ad33c9f28b99\r\nContent-Disposition: form-data; name=\"ajaxUrl\"\r\n\r\nhttp://localhost/website/ajax.php\r\n------------------------------ad33c9f28b99\r\nContent-Disposition: form-data; name=\"analysisFile\"\r\n\r\nC:\\xampp\\htdocs\\website\\phantom\\get_site_info.js\r\n------------------------------ad33c9f28b99\r\nContent-Disposition: form-data; name=\"businessId\"\r\n\r\n67\r\n------------------------------d33c9f28b99\r\nContent-Disposition: form-data; name=\"website\"\r\n\r\nhttp://www.website.com/\r\n------------------------------ad33c9f28b99--\r\n",
"url" : "/"
}
如您所见,没有 POST 对象,只有一个包含所有 POST 数据的大字符串。是我通过 cURL 发送它的方式吗?我对此很不熟悉,而且我从这里得到的 cURL 代码。
如果有帮助,我正在使用 casperjs 1.1.0-DEV 运行 phantomjs 1.9.1。