Python curl:无法解析主机

Python curl:无法解析主机,python,curl,post,cmd,put,Python,Curl,Post,Cmd,Put,我正在尝试使用以下命令发送带有CMD(windows 10中的命令提示符)的POST/PUT请求: 第一: 第二: 使用这些命令,我得到了一个curl:cannot resolve错误,当它命名完所有无法解决的问题后,我得到了一个服务器错误状态500我不明白为什么它不工作,因为我试过这些命令,它们以前似乎工作过,但它们不工作 (我认为我的代码中有一个错误,我尝试了http请求而不是curl,它工作得很好,在获得200ok状态时没有问题。) 注意双引号内的双引号: curl -iX PUT -H

我正在尝试使用以下命令发送带有CMD(windows 10中的命令提示符)的POST/PUT请求:

第一:

第二:

使用这些命令,我得到了一个
curl:cannot resolve
错误,当它命名完所有无法解决的问题后,我得到了一个
服务器错误状态500
我不明白为什么它不工作,因为我试过这些命令,它们以前似乎工作过,但它们不工作

(我认为我的代码中有一个错误,我尝试了http请求而不是curl,它工作得很好,在获得
200ok
状态时没有问题。)


注意双引号内的双引号:

curl -iX PUT -H "Content-Type: application/json" -d '{"name": "test number 1", "description": "A website test", "category": "test", "release_date": "2017-10-08T01:01:00.776594Z"}' localhost:8000/home/search/3

如果不是在Windows上,上面由@Necklondon用单引号给出的答案应该是有效的

但是,如果在Windows上,则需要在JSON字符串中转义双引号

curl -iX PUT -H "Content-Type: application/json" -d "{""name"": ""test number 1"",""description"": ""A website test"",""category"": ""test"",""release_date"": ""2017-10-08T01:01:00.776594Z""}" http://localhost:8000/home/search/3
此外,为了说明在JSON中使用单独的文件时CURL命令变得多么简单

C:\Users\...\Desktop>TYPE somefile.json
{
    "name": "test number 1",
    "description": "A website test",
    "category": "test",
    "release_date": "2017-10-08T01:01:00.776594Z"
}

C:\Users\...\Desktop>curl -iX PUT -H "Content-Type: application/json" --data-binary @somefile.json http://localhost:8000/home/search/3

我确实尝试过这个解决方案,但效果不太好,它给了我相同的结果,即
curl:无法解析主机
。奇怪的是,我得到了“$curl-iX PUT-H”内容类型:application/json“-d'{“name”:“test number 1”,“description”:“A website test”,“category”:“test”,“release_date”:“2017-10-08T01:00.776594Z”}'localhost:8000/home/search/3 curl:(7)无法连接到localhost端口8000:Connection-densed“这是正常的,这确实很奇怪,这就是为什么当我遇到这个错误时我感到如此困惑,更奇怪的是,它实际上可以处理http请求,但不能处理curl请求,这意味着我的代码中没有错误。“curl:无法解析主机”与“错误状态500”不同“根据您的问题,您得到了什么?请按照我的建议,使用
--data binary@filename.ext
并使用完整的URL,例如。,
http://localhost:8000/home/search/3
而不仅仅是
localhost:8000/home/search/3
。您不应该在
localhost:8000/home/search/3
之前使用
http://
https://
?@JustinEzequiel不,不是真的。我认为这是一个解决方案,并尝试了它,但它仍然给了我同样的错误。如果你在Windows上,而不是弄清楚如何在命令提示符中正确转义引号,请尝试
curl--data binary@filename.ext…
其中
filename.ext
是一个带有JSON字符串的文件。例如。,“无法解析主机:植物与僵尸“所有错误都是由于
-d
后面的双引号转义错误造成的。正如我所说的,使用
--data binary@filename.ext
并将JSON放在文件
filename.ext
中。这样,您就不必逃避双引号!为什么你一直忽视我的建议?如果你坚持不为你的JSON使用单独的文件,那么你需要像这里一样正确地避开双引号,并特别提到单引号在Windows上不起作用。感谢它起作用,我将阅读你在评论中链接的讨论,我也试过你在评论上的方法,效果很好,谢谢。在那之后,我刚刚下载了gitbash,并在中尝试了我的第一个命令和@Necklondon命令,gitbash成功了。
curl -iX PUT -H "Content-Type: application/json" -d "{""name"": ""test number 1"",""description"": ""A website test"",""category"": ""test"",""release_date"": ""2017-10-08T01:01:00.776594Z""}" http://localhost:8000/home/search/3
C:\Users\...\Desktop>TYPE somefile.json
{
    "name": "test number 1",
    "description": "A website test",
    "category": "test",
    "release_date": "2017-10-08T01:01:00.776594Z"
}

C:\Users\...\Desktop>curl -iX PUT -H "Content-Type: application/json" --data-binary @somefile.json http://localhost:8000/home/search/3