Hiii家伙,
我非常清楚如何使用php / curl编程并使用可用的选项。
我想知道如果我们想将数据发布到网站(在我的情况下,我必须通过点击基本上是javascript的链接来回答网站上的问题) 但是我使用的LIVEhttpHeaders插件并没有提供发布数据。 那是, 当我点击所需的链接
时,插件显示以下内容http://www.xyz.com/ans.do?q=X2&id=cX&cid=1&oid=5
POST /ans.do?q=X2&id=cX&cid=1&oid=5 HTTP/1.1
Host: xyz.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://www.xyz.com/Quiz.do?qId=291241
Cookie: __utma=1.399093274.1364213174.1365000359.1365004345.14;
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 0
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Language: en-US
Content-Length: 5876
Date: Wed, 03 Apr 2013 15:59:02 GMT
我创建了一个curl脚本,直到测验...并且可以解析require参数(q,id,cid,oid等)。 但是我如何实际发布数据(单击选项)因为它们不是POST_FIELD ???
我到目前为止使用了以下代码
$url_c="$ser/ans.do?q=$q&id=$id&cid=$cid&oid=$oid;
$url_p="$ser/Quiz.do?qId=$qid";
curl_setopt($ch, CURLOPT_URL,$url_c);
curl_setopt ($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/x-www-form-urlencoded","Accept: */*"));
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch,CURLOPT_ENCODING,"gzip,deflate");
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $url_p);
$html=curl_exec($ch);
但选择仍然如此。 尝试将POST设为1,FOLLOWLOCATION,但是工作。
我可以帮忙吗???
答案 0 :(得分:0)
为什么不使用chrome开发人员工具并使用this来使控制台持久并获得post params,而不是使用实时http头。
答案 1 :(得分:0)
$url_c="$ser/ans.do;
$query = q=$q&id=$id&cid=$cid&oid=$oid;
$url_p="$ser/Quiz.do?qId=$qid";
curl_setopt($ch, CURLOPT_URL,$url_c);
curl_setopt ($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/x-www-form-urlencoded","Accept: *"));
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch,CURLOPT_ENCODING,"gzip,deflate");
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $url_p);
你设置了这些吗?
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
$html=curl_exec($ch);