所以我以前从未使用过PHP或http发布或其他任何内容,所以如果我问一些愚蠢的话,请原谅。
这是一个网站,所以我可以更准确地解释我需要什么。
http://nycserv.nyc.gov/NYCServWeb/NYCSERVMain
所以我想写一些能得到结果页面信息的东西,好像我点击了“消费者公平违规”旁边的“开始”按钮。在做了一堆谷歌搜索之后,我想我应该做HTTP发布,所以我一直在搞乱PHP和CURl。这是我想出的代码,虽然我不确定我应该发布什么值。
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://nycserv.nyc.gov/NYCServWeb/NYCSERVMain");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
$data = array(
'dcadropdownmenu.name' => 'javascript:consumerAffairsViolationsQuerySetup("GET_CONSUMER_AFFAIRS_VIOLATION_SEARCH_QUERY_SETUP")');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
print $info;
print $output;
?>
我很确定我不应该设置dvaddropdowmenu.name,但我不知道我应该发布什么。任何帮助都会很棒。
更新 所以我终于开始工作了。我现在遇到的问题是如何在原始的返回页面上再次发布HTTP。我的意思是,我是从页面返回HTML,就像我点击Go按钮一样。现在我需要点击此返回页面上的搜索按钮。我尝试过只更改post变量和exec'ing,但这不起作用。有什么帮助吗?
答案 0 :(得分:0)
需要花一些时间来挖掘JavaScript,但这是实际提交的表单:
form name="NycservProtocolForm" method="POST" action="NYCSERVMain">
<center>…</center>
<!-- N Y C S E R V P R O T O C O L -->
<input type="HIDDEN" name="ChannelType" value="ct/Browser">
<input type="HIDDEN" name="RequestType" value="rt/Business">
<input type="HIDDEN" name="SubSystemType" value="st/Payments">
<input type="HIDDEN" name="AgencyType" value="at/PVO">
<input type="HIDDEN" name="ServiceName" value="NONE">
<input type="HIDDEN" name="MethodName" value="NONE">
<input type="HIDDEN" name="PageID" value="NYCSERVHome">
<input type="HIDDEN" name="ParamCount" value="0">
<input type="HIDDEN" name="NycservRequest" value="EMPTY">
<input type="HIDDEN" name="SearchType" value="EMPTY">
<input type="HIDDEN" name="LinkType" value="EMPTY">
</form>
根据您对表单的熟悉程度,您可以决定发送这些参数的数量。但这些是您在发送POST请求时要指定的变量。