开发者

header sent by curl does not contain POST data

开发者 https://www.devze.com 2023-03-18 00:11 出处:网络
The function: function post_with_curl($target,$ref, $name ,$viewStateValue ) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $target) ;// Target site

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?

0

精彩评论

暂无评论...
验证码 换一张
取 消