为什么curl有时会返回单行JSON响应?

时间:2019-02-14 04:19:22

标签: macos curl github-api user-agent

我正在尝试使用https://github.com/mayankk2308/purge-wrangler脚本使nVidia GPU在MacPro上运行,但遇到了问题。

我的MacPro上的安装说明失败,但我的MacBookPro上的安装说明成功。两者都运行相同的OSX版本(Mojave 10.14.2)和相同版本的curl(curl 7.63.0)。

以下是说明...

curl -s https://raw.githubusercontent.com/mayankk2308/purge-wrangler/master/resources/webdrv-release.sh | bash

这将返回并执行以下脚本...

curl -s "https://api.github.com/repos/mayankk2308/purge-wrangler/releases/latest" | grep '"browser_download_url":' | sed -E 's/.*"([^"]+)".*/\1/' | xargs curl -L -s -0 > purge-wrangler.sh && chmod +x purge-wrangler.sh && ./purge-wrangler.sh && rm purge-wrangler.sh

问题是,curl在MacPro上返回单行响应,而在其他任何地方都返回多行响应。我试图了解我的机器上有什么不同,从而导致如此根本不同的行为。

这必须是服务器端交换机,但我不确定它是什么。

注意:sed(1)行很容易更新以支持单行/多行响应,但是我想深入了解两台计算机上的不同之处。

有人有指针吗?

1 个答案:

答案 0 :(得分:0)

问题竟然是我的〜/ .curlrc中的以下两行...

# Disguise as IE 9 on Windows 7.
user-agent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"

指定此用户代理会影响https://api.github.com返回其JSON响应(单行或多行)的方式。

老实说,我不知道为什么这行会出现在我的〜/ .curlrc文件中,但是我怀疑其他人肯定也遇到了同样的问题,并且只是在解决它。