前言
今天,準確的說是前幾天,對接其他部門的的接口,於是乎調了前人封裝的curl的函數。奇怪的是:用post的方式curl進行請求竟然一直報錯,而用命令列curl -d “parms” url是可以成功的。難道「祖傳」的curl函數用錯了? ?
正文
原因的排查
由於命令列可以,而呼叫函數不行,導致十分奇怪。
可能的原因:
1.參數或url錯了,少了一個s什麼的------對過之後排除了
2.難道封裝的curl函數有問題? -----想想那麼多地方呼叫應該不會有問題啊,不過最後還是覺得這個函數有問題,突然看到了其中一個將參數urlencoded的標記,抱著試一試心態,媽蛋,竟然可以了,真的就是這裡了。
說說原理
經過查php手冊之後發現:在配置CURLOPT_POSTFIELDS的參數的時候,這個參數雖然說傳array和urlencoded後的參數都可以,但是還是有區別的:如果value是一個數組,Content- Type頭將會被設定成multipart/form-data。就是這個了。導致介面提供方一致接收不到參數。
以上就介紹了踩坑系列之 php的curl,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。