想要使用cURL将数据发布到网站但是他们没有看到POST_FIELDS

时间:2013-04-03 16:13:12

标签: javascript curl

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,但是工作。

我可以帮忙吗???

2 个答案:

答案 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);