gpt4 book ai didi

json - 如何使用 CURL 对 JSON POST 请求中的部分字符进行转义?

转载 作者:行者123 更新时间:2023-12-03 01:39:42 31 4
gpt4 key购买 nike

因此,我尝试使用名为 Postmark 的服务来发送格式化的 HTML 电子邮件。他们有一些API文档here ,他们给出了如何使用 CURL 的示例:

$: curl -X POST "http://api.postmarkapp.com/email" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Postmark-Server-Token: ed742D75-5a45-49b6-a0a1-5b9ec3dc9e5d" \
-v \
-d "{From: 'sender@example.com', To: 'receiver@example.com', Subject: 'Postmark test', HtmlBody: '<html><body><strong>Hello</strong> dear Postmark user.</body></html>'}"

所以,这一切都很好,并且当我使用自己的 token 时效果很好。问题是当我添加自己的 HtmlBody 时。如果我发送一条简单的消息,它就可以正常工作。一旦我添加某些特殊字符,它就会崩溃。例如,如果我做这样的事情:

-d "{From: 'sender@example.com', To: 'receiver@example.com', Subject: 'Postmark test', HtmlBody: '<!DOCTYPE html><html><body><strong>Hello</strong> dear Postmark user.</body></html>'}"

它因为!而中断。我该如何解决这个问题?

<小时/>

更新:正如sourcejedi指出的那样,我是从 shell (bash) 运行它,所以 !现在这个问题对我来说很有意义。我将 JSON 字符串移至名为 email.json 的单独文件中,并使用 -d @email.json 加载该文件。 。这适用于一封简单的电子邮件 <!DOCTYPE> ,但当我尝试加载完整的 HTML 时,仍然收到以下错误:

{"ErrorCode":402,"Message":"Received invalid JSON input."}

我相信这与其他一些特殊字符有关。当我使用 --data-urlencode @email.json 时出现同样的错误.

最佳答案

您需要使用--data-urlencode,所以它应该像curl -X POST --data-urlencode

当我测试时..

* About to connect() to api.postmarkapp.com port 80 (#0)
* Trying 50.56.54.211... connected
> POST /email HTTP/1.1
> User-Agent: curl/7.23.1 (x86_64-pc-win32) libcurl/7.23.1 OpenSSL/0.9.8r zlib/1
.2.5
> Host: api.postmarkapp.com
> Accept: application/json
> Content-Type: application/json
> X-Postmark-Server-Token: ed742D75-5a45-49b6-a0a1-5b9ec3dc9e5d
> Content-Length: 164

关于json - 如何使用 CURL 对 JSON POST 请求中的部分字符进行转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12165236/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com