Http Notes

HttpWebRequest.ServicePoint.Expect100Continue

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url)

request.ServicePoint.Expect100Continue

// 摘要:

//     获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。

// 返回结果:

//     如果 POST 请求需要 100-Continue 响应,则为 true;否则为 false。默认值为 true。

解析:

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

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

并不是所有的Server都会正确应答100-continue, 比如 lighttpd, 就会返回417 “Expectation Failed”, 则会造成逻辑出错。

解决办法:

HttpWebRequest request = WebRequest.Create(uri.Uri) as HttpWebRequest;

reqrequest.ServicePoint.Expect100Continue = false; // 取消100-continue

转载于:https://www.cnblogs.com/huhunet/p/7402925.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值