PHP CURL POST

PHP CURL POST

最近公司運營平臺由於要接通另一個服務端的接口,要求模擬HTTP POST 提交數據。好久沒有寫過CURL了,特地上官網查了下文檔以及複習下HTTP POST參數所表明的含義,根據HTTP POST參數所要求模擬的一個POST請求,發放出來給你們共同交流學習。代碼的註釋是app

/*
 * [Content-Length] => 48
 * [Content-Type] => application/x-www-form-urlencoded
 * [Accept] => *\/*
 * [User-Agent] => Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15
 * [Host] => localhost )
 */
public static function doCurlPostRequest($url,$post_data){
    $postData = http_build_query($post_data);
    $curl = curl_init();
    //SET POST REQUEST LINE
    curl_setopt($curl, CURLOPT_URL, $url);//SET URL
    curl_setopt($curl, CURLOPT_POST, true);//SET POST
    //SET HEADER
    curl_setopt($curl, CURLOPT_USERAGENT,'Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15');//CLINET BROW
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //STOP VVERIFYING CERTIFICATE
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //NOT OUTPUT
    curl_setopt ($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));//HEARD MIME
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);//FORWARD IS TRUE
    //SET POST DATA
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
    $output = curl_exec($curl);
    if ($output == NULL) {
        return 0;
    }
    curl_close($curl);
    return $output;
}
/*
 * OUTPUT HEADERS
 */
public function getallheaders()
{
    foreach ($_SERVER as $name => $value) {
        if (substr($name, 0, 5) == 'HTTP_') {
            $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
        }
    }
    return $headers;
}
相關文章
相關標籤/搜索