• 欢迎来到我的博客
  • [email protected]

PHP curl header Expect:100-continue

学习笔记 tianlan 来源:鸟叔博客 1年前 (2020-09-06) 415次浏览 0个评论 扫描二维码

在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,

  1. 1. 发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据
  2. 2. 接收到Server返回的100-continue应答以后, 才把数据POST给Server

这是libcurl的行为.
具体的RFC相关描述: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3
于是,这样就有了一个问题, 并不是所有的Server都会正确应答100-continue, 比如lighttpd, 就会返回417 “Expectation Failed”, 则会造成逻辑出错,,
要解决的办法也挺容易:

// Disable Expect: header (lighttpd does not support it)
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));

天蓝, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP curl header Expect:100-continue
喜欢 (0)
[[email protected]]
分享 (0)

您必须 登录 才能发表评论!