curl命令 - 无法在Ubuntu上解析xn-x-5gn / post

时间:2017-05-02 09:31:03

标签: node.js ubuntu curl

我正在使用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

我收到以下消息:

  

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

2 个答案:

答案 0 :(得分:1)

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

curl会将所有不以减号开头的选项视为URL,这使得它将dash-X字符串转换为IDN主机名并进行尝试。然后它继续尝试“POST”主机名,因为它跟在dash-X之后......这些主机名都不能被解析,这是你看到的卷曲错误消息。

最后:当您使用-X POST(或使用-d)发帖时,请勿使用-F!只需完全删除-X POST即可,效果会更好。

答案 1 :(得分:0)

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

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

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

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

相关问题