AWS API Gateway从正文中删除换行符

时间:2016-06-24 10:19:18

标签: curl

我的身体映射定义为:

java.exe -Djava.library.path=your_path_to_libbluecove.so ...other options...

使用

调用该函数
{
    "csv": "$input.body",
    "p1": false,
    "p2": "p3",
    "p3": "p4"
}

input.csv包含

curl 'https://xxxxx.execute-api.us-west-2.amazonaws.com/prod/xxx?p3=aaa&p4=bbb' \
-XPOST -H "Content-Type: application/csv"  -d @input.csv

最终会用

调用我的lambda函数
l1c1,l1c2
l2c1,l2c2
l3c1,l3c2

有没有办法不从体内删除换行符? $ input.body应评估为" RAW PAYLOAD"根据这里的文档http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#d0e9653

还尝试使用$ util.escapeJavaScript($ input.body),但它完全没有任何区别。

解码$ util.base64Encode($ input.body)也删除了新行...

谢谢,

2 个答案:

答案 0 :(得分:1)

结果--data或-d将数据发送为www-form-urlencoded,从而删除新行。 --data-binary是在我的情况下发送文件的正确方法。

答案 1 :(得分:0)

来自curl' man page

  

从名为' foobar'的文件中发布数据因此可以使用--data @foobar完成。当--data被告知从这样的文件中读取时,回车符和换行符将被删除。

另请参阅:How to send line break with curl?