亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP如何使用curl 函數post json 以后,獲取返回的響應頭?

PHP如何使用curl 函數post json 以后,獲取返回的響應頭?

PHP
一只名叫tom的貓 2019-03-15 05:43:25
因為業務需要,需要使用curl 傳輸一段json數據,然后再獲取響應首部中的響應行信息,(比如網站的Set-Cookie等),最后將Set-Cookie和對應的值組成數組返回,使用如下代碼: $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_HEADER => true, //輸出header信息 CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10,//最大重定向次數 10次 CURLOPT_TIMEOUT => 3000,//超時設置3000s CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode($data), CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", ), )); $result = curl_exec($curl); $return_result = $result; $info = curl_getinfo($curl); $httpHeaderSize = $info['header_size']; //header字符串體積 $pHeader = substr($result, 0, $httpHeaderSize); //獲得header字符串 foreach(explode(PHP_EOL, $pHeader) as $item){//分隔得到的header字符串,拼接成響應行的數組 if(strstr($item, 'Set-Cookie:')){ $arr = explode('Set-Cookie:', $item); $arr2 = explode('=', $arr[1] ,2); $header_name = $arr2[0];#dump($header_name); $header_value = explode(';', $arr2[1], 2)[0]; $set_header[] = [$header_name=>$header_value]; } } return $set_header; 但是問題是,獲取到header信息,就無法發送json,我認為原因就是在:CURLOPT_RETURNTRANSFER => true 的設置上.請問各位大神,有什么好的方法,讓curl()既發送json數據(post方式),又可以將響應行組成數組返回嗎?謝謝大家了.
查看完整描述

2 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

無法發送json,是什么意思?

查看完整回答
反對 回復 2019-03-18
  • 2 回答
  • 0 關注
  • 970 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號