【问题标题】:curl: (6) Could not resolve host: applicationcurl:(6)无法解析主机:应用程序
【发布时间】:2016-04-01 16:42:25
【问题描述】:

Getting url: (6) Could not resolve host: application 此命令后出错:

curl -i -H 'Content-Type: application/json' -d '{"Code":"FR","Name":"France"}' http://127.0.0.1:8080/countries

完整的错误日志:

curl: (6) Could not resolve host: application
HTTP/1.1 415 Unsupported Media Type
Content-Type: application/json; charset=utf-8
X-Powered-By: go-json-rest
Date: Sat, 02 Apr 2016 05:31:20 GMT
Content-Length: 73

{
"Error": "Bad Content-Type or charset, expected 'application/json'"
}

这个命令有什么问题?

编辑:

我解决了我在 Windows 中这样编辑的问题:"{/"Code/":/"FR/"}"

【问题讨论】:

    标签: curl


    【解决方案1】:

    就我而言,在冒号后加空格是错误的。

    # Not work
    curl -H Content-Type: application/json ~
    # OK
    curl -H Content-Type:application/json ~
    

    【讨论】:

    • 这解释了为什么我的带有 json 数据的 Surveymonkey API 请求都不起作用。谢谢!
    • 在 Windows 上,我还可以通过使用 " 而不是 ' 来修复它。不工作:curl -H 'Accept: application/json'。工作:curl -H "Accept: application/json".
    • 似乎在 Windows 上使用'single quotes' 只会导致各种难以诊断的问题,因为错误通常毫无意义。使用-v 应该可以解决问题。
    【解决方案2】:

    它将字符串 application 视为您的 URL。
    这意味着您的 shell 没有正确解析命令。
    我的猜测是你从某个地方复制了字符串,当你粘贴它时,你得到了一些看起来像普通引号的字符,但实际上不是。
    尝试重新输入命令;你只会从你的键盘上得到有效的字符。我敢打赌,您会得到与看起来相同的查询截然不同的结果。 由于这可能是 shell 问题而不是“curl”问题(您自己没有从源代码构建 cURL,对吗?),最好提一下您是否使用 Linux/Windows/等。

    【讨论】:

    • 您尝试重新输入了吗?
    • 我解决了我的问题。在 Windows 中,我必须这样输入:"{/"Code/":/"FR/"}"
    • 我遇到了类似的问题。我的命令不包含双引号,参数在单引号之间。我用双引号替换了它们,它起作用了。在 Windows 上也是如此。
    【解决方案3】:

    我将所有单引号 ['] 替换为双引号 ["],然后它完美运行。感谢@LogicalKip 的输入。

    【讨论】:

    • 我的冒号后面有一个空格,而且我没有使用双引号
    【解决方案4】:

    Slack 示例....(使用您在此处生成的网址)...

    curl -X POST -H "Content-type:application/json" --data "{\"text\":\"A New Program Has Just Been Posted!!!\"}" https://hooks.slack.com/services/T7M0PFD42/BAA6NK48Y/123123123123123

    【讨论】:

    • @pomply 你能详细说明一下吗?你真的尝试过上面的例子吗?您收到什么错误消息?
    【解决方案5】:

    我也遇到了这个错误。我通过安装解决了它: https://git-scm.com/

    并从 Git Bash 窗口运行命令。

    【讨论】:

    • 非常感谢!!我努力解决这个问题,而你拯救了我的夜晚。
    【解决方案6】:

    对于我在已设置环境变量的 Windows 10 上使用 curl 的问题,

    curl -X POST -H "Content-Type:application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_blockNumber\",\"params\":[],\"id\":83}" https://some-node-url.com
    

    我需要将所有单引号 ' 替换为双引号 "

    即使我试图卷曲的区块链示例有一个单引号。

    并且还在参数括号{}内的所有双引号前面添加\

    【讨论】:

      【解决方案7】:

      在我的情况下,由于复制和粘贴错误,缺少换行符添加了不需要的参数。

      我按照https://pytorch.org/docs/stable/notes/windows.html#include-optional-components 的指南进行操作,当您将其复制到此处而不进行任何编辑时,它看起来像这样:

      REM 确保您已安装 7z 和 curl。

      REM 下载 MKL 文件

      curl https://s3.amazonaws.com/ossci-windows/mkl_2020.0.166.7z -k -O 7z x -aoa mkl_2020.0.166.7z -omkl
      

      输出:

      C:\Users\Admin>curl "https://s3.amazonaws.com/ossci-windows/mkl_2020.0.166.7z" -k -O 7z x
      -aoa mkl_2020.0.166.7z -omkl   
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed 
      100  103M  100  103M  0     0  5063k      0  0:00:21  0:00:21 --:--:-- 5629k
      0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0curl: (6) Could not resolve host: 7z
      0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0curl: (6) Could not resolve host: x 
      curl: (6) Could not resolve host: mkl_2020.0.166.7z
      

      “7z”之前实际上有一个换行符,“7z”作为可执行文件(之前,除了将curl添加到user PATH之外,您还需要将7z添加到user PATH,因为以setx PATH "%PATH%;C:\Program Files\7-Zip\" 为例):

      REM 下载 MKL 文件

      curl https://s3.amazonaws.com/ossci-windows/mkl_2020.0.166.7z -k -O

      7z x -aoa mkl_2020.0.166.7z -omkl

      【讨论】:

        【解决方案8】:

        在我的例子中,我将 curl 命令从 Confluence 复制到了 TextEdit。花了将近一个小时,并尝试将命令粘贴到不同的文本编辑器中以进行清理,最后,PyCharm 帮助了我(IntelliJ 也应该帮助)

        在 PyCharm 中粘贴后,我看到了错误

        删除这些“NBSP”(不间断空格)后,命令开始正常运行。

        【讨论】:

          【解决方案9】:

          Windows 控制台通常无法正确解释 JSON 数组中的双引号,因此您可以在双引号前添加斜杠 / 来解决它。

          【讨论】:

            【解决方案10】:

            在类似 ubuntu 的系统中,这主要发生在我们在 /etc/resolv.conf 中没有名称服务器时

            所以,我们在文件中添加了以下行。

            nameserver 8.8.8.8
            

            然后,这修复了错误,主机开始解决。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-05-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多