Client: curl POST 请求超过1024字节 Server: HTTP 100-continue

当我们使用 linux 的curl命令,或是调用libcurl接口,由客户端向服务器端发送 POST 消息的时候,很有可能忽视一个问题就是消息体长度问题,作为网络通信,这个问题是需要我们所了解的,下面就详细介绍一下。

当消息体的长度超过1024字节时,客户端并不会直接将POST请求的消息发送给服务器端,而是会分两步走,

Client:发送POST 请求,header中默认带有 {"Expect":"100-continue"}。

Server: 接收client的post请求,并决定是否愿意接受客户端的请求(基于请求的头部)。如果接受,那么会返回HTTP 100-continue状态码。

Client:如果接收到HTTP 100-continue状态码,那么继续发送消息体。

 

当然了,如果不想让客户端分两步走发送完消息的话,在第一次POST的时候,header中加入{"Expect":""} 就可以一次行的将长消息发送给服务器端。

 

curl命令使用方法:

curl -i -H 'Content-type':'application/json' -H 'Expect':'' -X POST -d 'xxxxxxxxx' "http://xxxxxx"

其中重要的参数:

-i   : 表示输出包括协议头信息

-H  :自定义头部信息传递给服务器,可以加多个-H,此处-H 'Expect':'' 表示不用默认100-continue,对于消息题内容超过1024字节也一次传输完成。

-X  :表示http请求方式。此处是POST方式。

-d  :以POST方式传输命令,跟着具体传输内容。

最后一项是url.

 

 

参考文献:

https://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果在安装了 `curl` 后使用 `curl` 命令时出现 `curl: command not found` 错误,可能是因为 `curl` 没有被正确地添加到系统的可执行路径中。这通常是由于安装过程出现了问题或者环境变量配置不正确导致的。 解决此问题的方法是: 1. 检查 `curl` 是否已正确安装:可以使用以下命令检查 `curl` 是否已成功安装在系统中: ``` which curl ``` 如果成功安装,会返回 `curl` 的路径,比如 `/usr/bin/curl`。 2. 检查环境变量配置:确保系统的环境变量中包含了 `curl` 的可执行路径。可以通过以下命令来查看环境变量: ``` echo $PATH ``` 确保其中包含了 `curl` 的安装路径(比如 `/usr/bin`)。 3. 重新安装 `curl`:如果上述步骤都没有解决问题,可以尝试重新安装 `curl`。首先卸载当前已安装的 `curl`,然后重新下载并安装最新版本的 `curl`。 在 Ubuntu 或者 Debian 上,可以使用以下命令来卸载 `curl`: ``` sudo apt remove curl ``` 然后可以按照适合你的操作系统的方式重新安装 `curl`。 4. 手动配置环境变量:如果上述步骤仍然没有解决问题,可以尝试手动将 `curl` 的路径添加到环境变量中。可以编辑 `~/.bashrc` 或者 `~/.bash_profile` 文件,添加以下内容: ``` export PATH="/usr/bin:$PATH" ``` 然后保存文件并重新加载配置: ``` source ~/.bashrc ``` 或者 ``` source ~/.bash_profile ``` 之后重新尝试使用 `curl` 命令。 如果问题仍然存在,可能需要进一步检查系统日志或者参考相关的 Linux 发行版文档,以获取更详细的错误信息和解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值