簡體   English   中英

在bash中將cURL請求中的JSON與普通數據混合

[英]Mixing JSON with normal data in cURL request in bash

我知道我可以用

curl --data "param1=value1&param2=value2" http://hostname/resource

要么

curl --request POST https://$url?param1=value1&param2=value2

但是,如果param1是value而param2是JSON,我該怎么辦?

如果我只是在其中扔JSON,即使使用變量,它也不起作用(tm)

$json='{"data":"value"}'
curl --request POST https://$url?param1=value1&param2=$json

這有什么竅門? 請注意,我只能打一個電話。

謝謝!

好吧,如果我們逃避一切(使用python),則如下所示

>>> x
'{"data": "value"}'
>>> urllib.urlencode({'param1':'value1', 'param2':x})
'param2=%7B%22data%22%3A+%22value%22%7D&param1=value1'

或者,使用curl選項

curl localhost:8080 --data-urlencode 'param1={"data":"value"}'

將發送到服務器

param1=%7B%22data%22%3A%22value%22%7D

您可能會注意到第一個版本有一個+,可能來自json編碼的空格,不確定它是否有效或是否可以刪除

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM