這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)怎么在php中使用curl設(shè)置header頭傳參,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、奈曼網(wǎng)站維護、網(wǎng)站推廣。
php curl設(shè)置header的方法:首先初始化瀏覽器;然后設(shè)置瀏覽器,并把參數(shù)url傳到瀏覽器的設(shè)置當中;接著以字符串形式返回到瀏覽器當中,并判斷data是否有數(shù)據(jù);最后通過“curl_setopt”方法設(shè)置header頭即可。
PHP使用CURL設(shè)置header頭傳參以及設(shè)置Content-Type: application/json類型的后臺數(shù)據(jù)接收
CURL函數(shù)
public function CurlRequest($url,$data=null,$header=null){ //初始化瀏覽器 $ch = curl_init(); //設(shè)置瀏覽器,把參數(shù)url傳到瀏覽器的設(shè)置當中 curl_setopt($ch, CURLOPT_URL, $url); //以字符串形式返回到瀏覽器當中 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //禁止https協(xié)議驗證域名,0就是禁止驗證域名且兼容php5.6 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //禁止https協(xié)議驗證ssl安全認證證書 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //判斷data是否有數(shù)據(jù),如果有data數(shù)據(jù)傳入那么就把curl的請求方式設(shè)置為POST請求方式 if ( !empty($data) ) { //設(shè)置POST請求方式 @curl_setopt($ch, CURLOPT_POST, true); //設(shè)置POST的數(shù)據(jù)包 @curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } //設(shè)置header頭 if ( !empty($header) ) { curl_setopt($ch, CURLOPT_HTTPHEADER, $header); } //讓curl發(fā)起請求 $str = curl_exec($ch); //關(guān)閉curl瀏覽器 curl_close($ch); //把請求回來的數(shù)據(jù)返回 return $str; }
函數(shù)調(diào)用
$url = "http://desk.yunindex.cn/test"; $jsonArr = [ 'accountid' => '34', 'option' => 'chat_index', ]; $jsonStr = json_encode($jsonArr); //設(shè)置了Content-Type: application/json,傳參要轉(zhuǎn)化為JSON,否則后臺接收不到數(shù)據(jù) //header頭設(shè)置 $headers = array( "Content-Type: application/json", "Content-Length: " . strlen($jsonStr) . "", "Accept: application/json", "client-id:5K8264ILTKCH16CQ2502SI8ZNMTM67VS", //自定義參數(shù) "client-secret:C380BEC2BFD727A4B6845133519F3AD6" //自定義參數(shù) ); $data = $this->CurlRequest($url,$jsonStr,$headers);
后臺接受
json_encode($_SERVER)
使用$_SERVER能接收到header頭的信息,在header頭里面設(shè)置的自定義參數(shù)會在這里面體現(xiàn)
結(jié)果
{ "USER": "www", "HOME": "\/home\/www", "HTTP_CLIENT_SECRET": "C380BEC2BFD727A4B6845133519F3AD6", //這是自定義的參數(shù),跟上面?zhèn)鞯膮?shù)相對于,會自動轉(zhuǎn)化為大寫跟下劃線 "HTTP_CLIENT_ID": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS", //這是自定義的參數(shù),跟上面?zhèn)鞯膮?shù)相對于,會自動轉(zhuǎn)化為大寫跟下劃線 "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頭里的參數(shù)如果有下劃線(如:client_secret),使用$_SERVER貌似會接收不到該參數(shù),需要配置nginx.conf,在里面添加 underscores_in_headers on; 配置
file_get_contents('php://input')
接收參數(shù),以流的形式接收
結(jié)果
string(40) "{"accountid":"34","option":"chat_index"}"
上述就是小編為大家分享的怎么在php中使用curl設(shè)置header頭傳參了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁標題:怎么在php中使用curl設(shè)置header頭傳參
URL地址:http://vcdvsql.cn/article22/iippcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、微信公眾號、企業(yè)網(wǎng)站制作、手機網(wǎng)站建設(shè)、App開發(fā)、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)