PHP中curl三種Post請求數(shù)據(jù)的方式小結(jié)
今天要講的HTTP請求頭的Content-Type字段,就是在curl發(fā)送post請求的時(shí)候需要指定以何種方式來請求數(shù)據(jù),常用的有3類:
1、form-data 。
就是 multipart/form-data 使用表單的方式來發(fā)送數(shù)據(jù) 是curl采用的默認(rèn)發(fā)送方式。請求數(shù)組類型的格式。
Content-Type: multipart/form-data
2、x-www-form-urlencoded 。
就是 application/x-www-form-urlencoded 把請求的內(nèi)容轉(zhuǎn)變成url參數(shù)的形式進(jìn)行發(fā)送,如:s1=red&s2=blue,這是標(biāo)準(zhǔn)的編碼格式,但在curl中卻不是默認(rèn)的發(fā)送方式。可以使用http_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等格式。請求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。
請求示例
// 模擬提交數(shù)據(jù)函數(shù) public function httpPost($url,$data){ $curl = curl_init(); // 啟動一個(gè)CURL會話 curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 對認(rèn)證證書來源的檢查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 從證書中檢查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_POST, true); // 發(fā)送一個(gè)常規(guī)的Post請求 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會話 return $result; // 返回?cái)?shù)據(jù) }
總結(jié)
到此這篇關(guān)于PHP中curl三種Post請求數(shù)據(jù)的方式的文章就介紹到這了,更多相關(guān)PHP curl Post請求數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP利用ueditor實(shí)現(xiàn)上傳圖片添加水印
在上傳圖片時(shí),有時(shí)需要添加水印。如果每個(gè)都用PS添加的話,會有些麻煩。本文將為大家介紹PHP如何利用ueditor實(shí)現(xiàn)上傳圖片添加水印,感興趣的可以了解一下2022-07-07PHP與Java對比學(xué)習(xí)日期時(shí)間函數(shù)
本文給大家介紹的是從Java和PHP進(jìn)行對比復(fù)習(xí)了下日期時(shí)間的處理函數(shù),并給出了一些示例,希望對大家能夠有所幫助2016-07-07PHP實(shí)現(xiàn)單例模式建立數(shù)據(jù)庫連接的方法分析
這篇文章主要介紹了PHP實(shí)現(xiàn)單例模式建立數(shù)據(jù)庫連接的方法,結(jié)合實(shí)例形式分析了PHP單例模式的概念、原理及使用單例模式實(shí)現(xiàn)數(shù)據(jù)庫連接的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02詳解PHP版本兼容之openssl調(diào)用參數(shù)
這篇文章給大家分享了PHP版本兼容之openssl調(diào)用參數(shù)的詳細(xì)說明,有興趣的朋友參考學(xué)習(xí)下。2018-07-07關(guān)于Appserv無法打開localhost問題的解決方法
安裝了Appserv時(shí),無法打開http://localhost或是http://127.0.0.1 下面的具體的解決方法,大家可以參考下。多注意看下端口占用問題。2009-10-10php基于mcrypt_encrypt和mcrypt_decrypt實(shí)現(xiàn)字符串加密解密的方法
這篇文章主要介紹了php基于mcrypt_encrypt和mcrypt_decrypt實(shí)現(xiàn)字符串加密解密的方法,結(jié)合實(shí)例形式分析了mcrypt_encrypt和mcrypt_decrypt函數(shù)進(jìn)行加密、解密的相關(guān)使用技巧,需要的朋友可以參考下2016-07-07