gpt4 book ai didi

macos - 为什么 cURL 返回错误 "(23) Failed writing body"?

转载 作者:行者123 更新时间:2023-11-29 08:38:39 30 4
gpt4 key购买 nike

它作为一个单一的工具工作正常:

curl "someURL"
curl -o - "someURL"

但它在管道中不起作用:

curl "someURL" | tr -d '\n'
curl -o - "someURL" | tr -d '\n'

它返回:

(23) Failed writing body

管道 cURL 输出有什么问题?如何缓冲整个 cURL 输出然后处理它?<​​/p>

最佳答案

当管道程序(例如 grep)在前一个程序完成写入整个页面之前关闭读取管道时,就会发生这种情况。

curl "url"| 中grep -qs foo,一旦 grep 有了它想要的东西,它就会关闭来自 curl 的读取流。 cURL 不希望出现这种情况并发出“写入正文失败”错误。

一种解决方法是通过一个中间程序通过管道传输流,该程序始终读取整个页面,然后再将其提供给下一个程序。

例如

curl "url" | tac | tac | grep -qs foo

tac 是一个简单的 Unix 程序,它读取整个输入页面并反转行顺序(因此我们运行它两次)。因为它必须读取整个输入以找到最后一行,所以在 cURL 完成之前它不会向 grep 输出任何内容。当 Grep 有它正在寻找的内容时,它仍然会关闭读取流,但它只会影响 tac,它不会发出错误。

关于macos - 为什么 cURL 返回错误 "(23) Failed writing body"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16703647/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com