libcurl http头默认的Expect: 100-continue引发的血案

现象:

在使用libcurl库开发的程序发送请求,响应时间长达1s左右,结果对方反馈他们压测的结果是 2~3ms 就能返回结果

原因

libcurl 当 POST的数据大于1024字节的时候,http默认添加请求头Expect: 100-continue,

  • 先追加一个Expect: 100-continue请求头信息,发送这个不包含 POST 数据的请求;
  • 如果服务器返回的响应头信息中包含Expect: 100-continue,则表示 Server 愿意接受数据,这时才 POST 真正数据给 Server;

解决办法

添加一个空的请求头,把 expect: 100-continue 请求头干掉

headers = curl_slist_append(headers, "Expect:")
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值