IPv6 Curl POST请求

3
在 IPV6 中如何使用 IPV6 地址和端口号构建 CURL POST http 请求。欢迎任何形式的讨论。
尝试按照以下方式构建请求:
>curl --interface 'http://[2001:0:db8:1111:0:0:0:11]:8091/?'

但是上面的错误提示为“curl:未指定URL”。
>curl -X POST -d  curl -X POST `http://[2001:0:db8:1111:0:0:0:11]:8091/?`

然后尝试了上述方法,但出现了错误。
>bash: http://[2001:0:db8:1111:0:0:0:11]:8091/?: No such file or directory
curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information

有没有其他方法,除了使用URL?
3个回答

10
curl -g -d post 'http://[2001:0:db8:1111:0:0:0:11]:8091/'

-g选项在使用IPv6地址时“旧时代”必须使用,它防止curl将URL中的[]符号视为全局匹配指令。(自curl 7.37.0(2014年5月)以来,curl不再将数字IPv6地址误认为是全局匹配,因此在此情况下使用-g不再必要

-d当然是用于发布的。您也可以加上-v以查看操作的详细信息。

(当使用-d时,-X POST不应出现在命令行中。)


1
显然,在2018年仍需要使用-g选项 - curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.34 zlib/1.2.7 libidn/1.28 libssh2/1.4.3 - slm
2
不,你的意思是你需要在2013年。我认为那已经算是"旧日"了。 - Daniel Stenberg
虽然命令中的关键词'post'应为大写字母: curl -g -d POST 'http://[2001:0:db8:1111:0:0:0:11]:8091/' - terwxqian

3

curl -4用于IPv4请求,curl -6用于IPv6请求。

对于您的示例,应该可以这样使用:

curl -6 -d post 'http://2001:0:db8:1111:0:0:0:11:8091/'


0

Win10:

curl -X POST http://[fe80::a989:2147:5f46:a4f3%4]:58080 -H "Content-Type:application/x-www-form-urlencoded" -d "username=xxx&pd=xxxx&..." 输入图像描述


-X, --request: 用于与服务器通信的HTTP方法。

-H, --header: 发送给服务器的HTTP头文件,使用POST请求。

-d, --data: 数据以键值对的形式使用POST请求发送到服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接