我知道我可以使用
curl --data "param1=value1¶m2=value2" http://hostname/resource
或
curl --request POST https://$url?param1=value1¶m2=value2
但是如果param1是值并且param2是JSON,我需要做什么?
如果我只是在那里扔JSON,即使使用变量
,它也无效(tm)$json='{"data":"value"}'
curl --request POST https://$url?param1=value1¶m2=$json
这里的诀窍是什么? 请注意,我只能拨打一个电话。
谢谢!
答案 0 :(得分:1)
好的,如果我们逃避一切(使用python),这就是它的样子
>>> x
'{"data": "value"}'
>>> urllib.urlencode({'param1':'value1', 'param2':x})
'param2=%7B%22data%22%3A+%22value%22%7D¶m1=value1'
或者,使用curl选项
curl localhost:8080 --data-urlencode 'param1={"data":"value"}'
将发送到服务器
param1=%7B%22data%22%3A%22value%22%7D
您可能会注意到第一个版本有一个+,它可能来自json编码的空间,不确定它是否有效或是否可以删除