【问题标题】:curl command - could not resolve xn--x-5gn/post on Ubuntucurl 命令 - 无法在 Ubuntu 上解析 xn--x-5gn/post
【发布时间】:2017-09-29 18:39:28
【问题描述】:

我正在使用 curl 命令调用 rest api。我想发布数据,我的 curl 命令如下所示:

curl –x POST -u 'username:PW' -k -H "Content-Type:application/json" -d '{"json-input":{"handler":"getContent","image":true,"video":false,"text":false,"source":"1","lage":"testlage1"}}' -i  http://localhost:8080/com.knime.enterprise.server/rest/v4/jobs/3fd2ca61-c173-4160-a20d-45c387f65f64

我收到以下消息:

curl:(6)无法解析主机:xn--x-5gn curl:(6)无法 解析主机:POST

【问题讨论】:

标签: node.js ubuntu curl


【解决方案1】:

检查正在使用的终端软件的代码页设置并将其与主机设置进行比较

在我们的例子中,我们看到同样奇怪的主机名错误返回到一个简单的

curl -v http://{hostname}:{port}

我们发现问题出在破折号上; Putty 中指定的代码页与主机使用的代码页不一致,因此 curl 将 -v 表达式视为主机名。

【讨论】:

    【解决方案2】:

    X 前面的字母写错了。它应该是一个 ascii 减号('-',ascii 代码 0x2d / 45),而不是问题中使用的 unicode dash character (U+2013)。

    curl 会将所有不以减号开头的选项视为 URL,这使得它将 dash-X 字符串转换为 IDN 主机名并尝试它。然后它继续尝试 dash-X 后面的“POST”主机名...这些主机名都无法解析,这是您看到的 curl 错误消息。

    最后:当你使用-d(或-F)发帖时,不要使用-X POST!只需完全删除-X POST,事情就会变得更好。

    【讨论】:

    • curl: 没有指定 URL!现在我的代码看起来像这样: let getDataUrl = "localhost:8080/com.knime.enterprise.server/rest/v4/jobs" let dataStringFy = {"json-input":{"handler":"getContent","image":true,"video":false,"text" :false,"source":"1","lage":"testlage1"}} 让 cmd = "curl -X POST -u 'username:pw -H 'Content-Type: application/json' -d" +" '"+ dataStringyFy + "'" + getDataUrl ;
    • 所以你没有听从我的建议,而是完全破坏了命令行?我不确定这是前进的方向......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 2011-08-15
    • 2020-07-10
    • 2023-01-15
    • 2014-09-05
    • 2019-05-04
    相关资源
    最近更新 更多