中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php中使用curl設置header頭傳參

發布時間:2020-07-30 11:13:05 來源:億速云 閱讀:810 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關怎么在php中使用curl設置header頭傳參,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

php curl設置header的方法:首先初始化瀏覽器;然后設置瀏覽器,并把參數url傳到瀏覽器的設置當中;接著以字符串形式返回到瀏覽器當中,并判斷data是否有數據;最后通過“curl_setopt”方法設置header頭即可。

PHP使用CURL設置header頭傳參以及設置Content-Type: application/json類型的后臺數據接收

CURL函數

public function CurlRequest($url,$data=null,$header=null){
  //初始化瀏覽器
  $ch = curl_init();
  //設置瀏覽器,把參數url傳到瀏覽器的設置當中
  curl_setopt($ch, CURLOPT_URL, $url);
  //以字符串形式返回到瀏覽器當中
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  //禁止https協議驗證域名,0就是禁止驗證域名且兼容php5.6
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  //禁止https協議驗證ssl安全認證證書
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  //判斷data是否有數據,如果有data數據傳入那么就把curl的請求方式設置為POST請求方式
  if ( !empty($data) ) {
    //設置POST請求方式
    @curl_setopt($ch, CURLOPT_POST, true);
    //設置POST的數據包
    @curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  }
  //設置header頭
  if ( !empty($header) ) {
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  }
  //讓curl發起請求
  $str = curl_exec($ch);
  //關閉curl瀏覽器
  curl_close($ch);
  //把請求回來的數據返回
  return $str;
}

函數調用

$url = "http://desk.yunindex.cn/test";
$jsonArr = [
  'accountid' => '34',
  'option' => 'chat_index',
];
$jsonStr = json_encode($jsonArr);  //設置了Content-Type: application/json,傳參要轉化為JSON,否則后臺接收不到數據
//header頭設置
$headers = array(
  "Content-Type: application/json",
  "Content-Length: " . strlen($jsonStr) . "",
  "Accept: application/json",
  "client-id:5K8264ILTKCH16CQ2502SI8ZNMTM67VS",    //自定義參數
  "client-secret:C380BEC2BFD727A4B6845133519F3AD6"  //自定義參數
);
$data = $this->CurlRequest($url,$jsonStr,$headers);

后臺接受

json_encode($_SERVER)  

使用$_SERVER能接收到header頭的信息,在header頭里面設置的自定義參數會在這里面體現

結果

{
"USER": "www",
"HOME": "\/home\/www",
"HTTP_CLIENT_SECRET": "C380BEC2BFD727A4B6845133519F3AD6",       //這是自定義的參數,跟上面傳的參數相對于,會自動轉化為大寫跟下劃線
"HTTP_CLIENT_ID": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS",          //這是自定義的參數,跟上面傳的參數相對于,會自動轉化為大寫跟下劃線
"HTTP_ACCEPT": "application\/json",  
"HTTP_CONTENT_LENGTH": "40",
"HTTP_CONTENT_TYPE": "application\/json",
"HTTP_HOST": "desk.yunindex.cn",
"SCRIPT_FILENAME": "\/workspace\/php\/index_desk\/htdocs\/index.php",
"REDIRECT_STATUS": "200",
"SERVER_NAME": "desk.yunindex.cn",
"SERVER_PORT": "80",
"SERVER_ADDR": "192.168.1.90",
"REMOTE_PORT": "64524",
"REMOTE_ADDR": "192.168.1.113",
"SERVER_SOFTWARE": "nginx\/1.15.2",
"GATEWAY_INTERFACE": "CGI\/1.1",
"REQUEST_SCHEME": "http",
"SERVER_PROTOCOL": "HTTP\/1.1",
"DOCUMENT_ROOT": "\/workspace\/php\/index_desk\/htdocs",
"DOCUMENT_URI": "\/index.php",
"REQUEST_URI": "\/test",
"SCRIPT_NAME": "\/index.php",
"CONTENT_LENGTH": "40",
"CONTENT_TYPE": "application\/json",
"REQUEST_METHOD": "POST",
"QUERY_STRING": "",
"FCGI_ROLE": "RESPONDER",
"PHP_SELF": "\/index.php",
"REQUEST_TIME_FLOAT": 1557025085.410574,
"REQUEST_TIME": 1557025085
}

這里有一個問題,如果使用的是nginx的話,header頭里的參數如果有下劃線(如:client_secret),使用$_SERVER貌似會接收不到該參數,需要配置nginx.conf,在里面添加 underscores_in_headers on; 配置

file_get_contents('php://input')

接收參數,以流的形式接收

結果

string(40) "{"accountid":"34","option":"chat_index"}"

上述就是小編為大家分享的怎么在php中使用curl設置header頭傳參了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北安市| 平凉市| 噶尔县| 公主岭市| 永春县| 阿坝县| 龙陵县| 日土县| 永川市| 江都市| 陵水| 合阳县| 长垣县| 闻喜县| 连南| 梅河口市| 玉溪市| 房产| 定陶县| 西吉县| 扶余县| 黎城县| 荥阳市| 聊城市| 西乡县| 阿拉尔市| 无为县| 湘潭市| 军事| 彰化县| 绥德县| 施秉县| 绥江县| 通许县| 怀宁县| 麦盖提县| 克拉玛依市| 巧家县| 宜州市| 蚌埠市| 河北区|