header sent by curl does not contain POST data
The function:
function post_with_curl($target,$ref, $name ,$viewStateValue )
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target) ; // Target site
curl_setopt($ch, CURLOPT_COOKIEFILE, str_replace('\\','/', getcwd().'/'."cook.txt" )); //CHANGE THIS
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_TIMEOUT, CURL_TIMEOUT); // Timeout
curl_setopt($ch, CURLOPT_USERAGENT, WEBBOT_NAME);
curl_setopt ($ch, CURLOPT_POST, 1);
$postfields = urlencode('__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=.'. $viewStateValue. '&__VIEWSTATEENCRYPTED=&ctl00$ContentPlaceHolder1$NameSearch1$CompanyNameTextBox1='.$name.'&ctl00$ContentPlaceHolder1$SearchButton=Search Now' ) ;
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postfields );
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); // Follow redirects
curl_setopt($ch, CURLOPT_MAXREDIRS, 4); // Limit redirections to four
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Return in string
$curled_page = curl_exec($ch);
var_dump(curl_getinfo($ch , CURLINFO_HEADER_OUT)) ;
curl_close($ch);
return $curled_page ;
}
The result of var_dump(curl_getinfo($ch , CURLINFO_HEADER_OUT)) :
string 'POST /V2/COUNTY/Default.aspx HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Host: 198.173.15.31
Accept: */*
Referer: http://198.173.15.31/V2/COUNTY/
Cookie: ASP.NET_SessionId=pqfpur45akgy3l45ujq3fail
Content-Length: 1603
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue
' (length=339)
As I see it, the header(being sent by curl?) does not c开发者_JAVA技巧ontain any POST data. Why ?
That's because post data is not part of the headers of a HTTP message, but part of the HTTP message body. If you get the headers, you don't get the body. If you want to retrieve the body you must retrieve the message body.
BTW you don't need to retrieve it because you already created it on your own into the $postfields
variable. That's merely the data being posted.
Or did I misread what you're actually asking for?
精彩评论