美文网首页
HTTP 请求 EXPECT 问题

HTTP 请求 EXPECT 问题

作者: 谢冰Drama | 来源:发表于2019-08-07 16:54 被阅读0次

问题描述:

.net 发送http 请求 采用两种方式(httpclient/ HttpWebRequest),
对方接口 是采用java 搭建的服务器,

但在访问接口 时 ,总是得不到 响应。 但是采用postman 的 话 又可以得到响应结果。

于是采用fiddler 进行 http 请求抓包。 对比 两个 请求的 请求头信息。
发现 postman 中没有 Expect:100-continue 这个请求头 ,但是 自己的 发起的请求中带有这个。

于是 关闭掉 这个请求头
(httpwebrequest: myRequest.ServicePoint.Expect100Continue = false;)
(httpclient: httpClient.DefaultRequestHeaders.ExpectContinue = false;)

然后重新 发起请求,然后 就获得到了 响应

(说明:请求数据只有207 字节,采用post方式)

于是在网上查找 Expect:100-continue 作用是什么:

它可以让客户端在发送请求数据之前去判断服务器是否愿意接收该数据,如果服务器愿意接收,客户端才会真正发送数据,这么做的原因是如果客户端直接发送请求数据,但是服务器又将该请求拒绝的话,这种行为将带来很大的资源开销。所以为了避免这种情况,libcurl在发送大于1024字节的POST请求时采用了这种方法,但是相对的,它会引起请求延迟的加大,另外并不是所有的server都会正确处理并且应答”100-continue“,比如lighttpd,就会返回417”Expectation Failed“,造成请求逻辑出错。

如果确定服务器不会拒绝1024个字节以上的POST请求,就可以不使用该方法而且也可以避免以上提到的两个副作用。

特此 记录该问题。

相关文章

  • HTTP 请求 EXPECT 问题

    问题描述: .net 发送http 请求 采用两种方式(httpclient/ HttpWebRequest),...

  • PHP CURL请求

    Expect 在不设置 Expect 头信息使用 curl 发送 POST 请求时,如果 POST 数据大于 1k...

  • http请求参数问题

    axios请求参数为数组时 解决思路前端转换直接拼接url地址 -axios post参数获取不到问题

  • HTTP请求出现405、500

    问题1:HTTP请求出现405 问题:http post请求网页会出现405 原因: Apache、IIS、Ngi...

  • expect 的安装及简单应用

    https://sourceforge.net/projects/expect/ http://www.linux...

  • Http GET请求缓存问题

    GET 缓存导致的问题 在iOS 客户端通过AFNetworking 发起 GET 方式的HTTP请求时,导致数据...

  • HTTP请求常见问题

    405 请求方式有问题(put、get、post) 590 调用内部出现问题,一般是调用别的服务出现的问题,会统一...

  • Swagger2构建强大的RESTful API文档

    问题: 由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量...

  • 【HTTP】HTTP请求

    1、HTTP协议通信流程: 2、HTTP请求包含内容 一个HTTP请求报文由请求行(request line)、请...

  • OkhttpUtils的https请求

    OkhttpUtils的https请求 网络请求中使用OkhttpUtils,原本的http请求没有什么问题。后来...

网友评论

      本文标题:HTTP 请求 EXPECT 问题

      本文链接:https://www.haomeiwen.com/subject/cbkadctx.html