這篇文章主要介紹了php使用curl出現(xiàn)Expect:100-continue解決方法,實(shí)例分析了Expect:100-continue出現(xiàn)的原理與解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了php使用curl出現(xiàn)Expect:100-continue解決方法。分享給大家供大家參考。具體如下:
使用curl POST數(shù)據(jù)時(shí),如果POST的數(shù)據(jù)大于1024字節(jié),curl并不會(huì)直接就發(fā)起POST請(qǐng)求。而是會(huì)分兩步。
1.發(fā)送一個(gè)請(qǐng)求,header中包含一個(gè)Expect:100-continue,詢問Server是否愿意接受數(shù)據(jù)。
2.接受到Server返回的100-continue回應(yīng)后,才把數(shù)據(jù)POST到Server。
這個(gè)是libcurl定義的,具體可以查看相關(guān)描述:
于是這樣就會(huì)出現(xiàn)一個(gè)問題。并不是所有的Server都會(huì)回應(yīng)100-continue的。例如lighttpd,會(huì)返回"417 Expectation Fail",會(huì)造成邏輯錯(cuò)誤。
解決方法如下,就是發(fā)送請(qǐng)求時(shí),header中包含一個(gè)空的Expect。
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Expect:"));
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
更多信息請(qǐng)查看IT技術(shù)專欄