1. 程式人生 > >踩坑系列之 php的curl

踩坑系列之 php的curl

前言

今天,準確的說是前幾天,對接其他部門的的介面,於是乎調了前人封裝的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。就是這個了。導致介面提供方一致接收不到引數。

這裡寫圖片描述