今天使用CURL爬一个网页时遇到了请求为Payload的情况,只要更改一下curl配置参数既可:

1、格式化post数据

$data = array(
            "end" => "2021-04-08",
            "page" => 3,
            "pageSize" => 20,
            "query" => "",
            "sid" => 1186641,

"siteAddress" => "www.baidu.com",

"start" => "2021-04-07", "terminal" => "wap", ); $postData = json_encode($data);



2、声明Content-type

$header  = array(
            'Cookie:'.$this->so_cookie,
            'Host:zhanzhang.sogou.com',
            'content-type:application/json'
        );
3、发送请求


    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch , CURLOPT_URL , $url);
    curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch , CURLOPT_POST, 1);
    curl_setopt($ch , CURLOPT_ENCODING, "");
    curl_setopt($ch , CURLOPT_POSTFIELDS, $post_data);
    curl_setopt($ch , CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch , CURLOPT_CUSTOMREQUEST, "POST");
    $output = curl_exec($ch);

curl_close($ch);