php应用curl请求去掉header信息

1. 前提

在API接口开发中,经常会碰到一个场景,就是请求第三方接口,然而请求回来的接口数据并不是我们期望的数据那样。比如我们请求回来的数据是不希望带header头信息的数据,然而第三方接口返回数据格式偏偏有header头的信息,怎么办呢?下面展示两种做法:

$no = "9830106220207"; $appcode = "6e8a1e3ee8fc4ddda7d6cc5bf999d53c";  $host = "https://kuaidi101.market.alicloudapi.com"; $path = "/getExpress"; $method = "GET"; $headers = array(); array_push($headers, "Authorization:APPCODE " . $appcode); $querys = "NO=". $no ."&TYPE=AUTO"; $bodys = ""; $url = $host . $path . "?" . $querys;  $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); if (1 == strpos("$".$host, "https://")) {     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } 

2. 方法一

$result = curl_exec($curl); if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200') {     $headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);  // 获取header长度     $body = substr($result, $headerSize);  // 截取掉header } 

3. 方法二

$result = curl_exec($curl); if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200') {     // 通过两个回车换行来分割header和body     list($header, $body) = explode("\r\n\r\n", $result, 2); }

您可能还会对下面的文章感兴趣: