PHP中curl三種Post請(qǐng)求數(shù)據(jù)的方式小結(jié)
今天要講的HTTP請(qǐng)求頭的Content-Type字段,就是在curl發(fā)送post請(qǐng)求的時(shí)候需要指定以何種方式來(lái)請(qǐng)求數(shù)據(jù),常用的有3類:
1、form-data 。
就是 multipart/form-data 使用表單的方式來(lái)發(fā)送數(shù)據(jù) 是curl采用的默認(rèn)發(fā)送方式。請(qǐng)求數(shù)組類型的格式。
Content-Type: multipart/form-data
2、x-www-form-urlencoded 。
就是 application/x-www-form-urlencoded 把請(qǐng)求的內(nèi)容轉(zhuǎn)變成url參數(shù)的形式進(jìn)行發(fā)送,如:s1=red&s2=blue,這是標(biāo)準(zhǔn)的編碼格式,但在curl中卻不是默認(rèn)的發(fā)送方式??梢允褂胔ttp_build_query ()函數(shù)將表單數(shù)據(jù)數(shù)組編碼為一個(gè)字符串。
Content-Type: x-www-form-urlencoded
3、raw(text/plain application/json text/xml等)。
是以純文本的方式發(fā)送數(shù)據(jù),可以選擇json、xml等格式。請(qǐng)求json格式的數(shù)據(jù)。
Content-Type: application/json
分析:發(fā)現(xiàn)Content-Type的類型取決于$data的數(shù)據(jù)類型。如果$data是字符串,則Content-Type是application/x-www-form-urlencoded。如果$data是k=>v的數(shù)組,則Content-Type是multipart/form-data。
請(qǐng)求示例
// 模擬提交數(shù)據(jù)函數(shù) public function httpPost($url,$data){ $curl = curl_init(); // 啟動(dòng)一個(gè)CURL會(huì)話 curl_setopt($curl, CURLOPT_URL, $url); // 要訪問(wèn)的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 對(duì)認(rèn)證證書來(lái)源的檢查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 從證書中檢查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_POST, true); // 發(fā)送一個(gè)常規(guī)的Post請(qǐng)求 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數(shù)據(jù)包 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設(shè)置超時(shí)限制防止死循環(huán) curl_setopt($curl, CURLOPT_HEADER, false); // 顯示返回的Header區(qū)域內(nèi)容 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 獲取的信息以文件流的形式返回 $result = curl_exec($curl); // 執(zhí)行操作 if (curl_errno($curl)) { return 'Error POST'.curl_error($curl); } curl_close($curl); // 關(guān)鍵CURL會(huì)話 return $result; // 返回?cái)?shù)據(jù) }
總結(jié)
到此這篇關(guān)于PHP中curl三種Post請(qǐng)求數(shù)據(jù)的方式的文章就介紹到這了,更多相關(guān)PHP curl Post請(qǐng)求數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
thinkphp5實(shí)用入門進(jìn)階知識(shí)點(diǎn)和各種常用功能代碼匯總
這篇文章主要介紹了thinkphp5實(shí)用入門進(jìn)階知識(shí)點(diǎn)和各種常用功能代碼匯總的相關(guān)資料,需要的朋友可以參考下2023-03-03PHP利用PHPMailer實(shí)現(xiàn)郵件發(fā)送功能
phpMailer是一個(gè)非常強(qiáng)大的php發(fā)送郵件類,可以設(shè)定發(fā)送郵件地址、回復(fù)地址、郵件主題、html網(wǎng)頁(yè),上傳附件,并且使用起來(lái)非常方便。本文將利用它實(shí)現(xiàn)郵件發(fā)送功能,需要的可以參考一下2022-03-03PHP+Mysql基于事務(wù)處理實(shí)現(xiàn)轉(zhuǎn)賬功能的方法
這篇文章主要介紹了PHP+Mysql基于事務(wù)處理實(shí)現(xiàn)轉(zhuǎn)賬功能的方法,實(shí)例分析了mysql事務(wù)處理的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07php支持?jǐn)帱c(diǎn)續(xù)傳、分塊下載的類
這篇文章主要介紹了php支持?jǐn)帱c(diǎn)續(xù)傳、分塊下載的類的相關(guān)資料,需要的朋友可以參考下2016-05-05在任意字符集下正常顯示網(wǎng)頁(yè)的方法二(續(xù))
在任意字符集下正常顯示網(wǎng)頁(yè)的方法二(續(xù))...2007-04-04PHP利用二叉堆實(shí)現(xiàn)TopK-算法的方法詳解
這篇文章主要給大家介紹了PHP利用二叉堆實(shí)現(xiàn)TopK-算法的方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2017-04-04php實(shí)現(xiàn)執(zhí)行某一操作時(shí)彈出確認(rèn)、取消對(duì)話框
當(dāng)執(zhí)行某一操作比如確認(rèn)或者取消時(shí)如何彈出對(duì)話框,針對(duì)這個(gè)需求,下面使用php來(lái)實(shí)現(xiàn)下,感興趣的朋友不要錯(cuò)過(guò)2013-12-12PHP郵件發(fā)送類PHPMailer用法實(shí)例詳解
這篇文章主要介紹了PHP郵件發(fā)送類PHPMailer用法,詳細(xì)的講述了安裝及配置的方法與功能實(shí)現(xiàn)代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09php 實(shí)現(xiàn)svg轉(zhuǎn)化png格式的方法分析
這篇文章主要介紹了php 實(shí)現(xiàn)svg轉(zhuǎn)化png格式的方法,結(jié)合實(shí)例形式分析了php svg轉(zhuǎn)化png格式相關(guān)實(shí)現(xiàn)技巧、遇到的問(wèn)題與操作注意事項(xiàng),需要的朋友可以參考下2020-01-01