我使用这个简单的ArduinoHttpClient示例代码从我的Arduino Uno WiFi Rev2发送一个示例帖子请求到一个可公开访问的URL。它起作用了。我得到了合法的回应。
但是现在,我想从我的Arduino代码发送一个HTTP请求,它模拟这个curl调用来发送一个电子邮件通过MailGun
curl \
--request POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--user 'api:XXXXXXXXXXXXXXXXXXXXX' \
--data-urlencode from='Mailgun Sandbox <postmaster@sandbox7d1aaf2f157f42d8844b1ac4c38a0ef7.mailgun.org>' \
--data-urlencode to='Me <myemail@gmail.com>' \
--data-urlencode subject='Hello World1' \
--data-urlencode text='Hello World2' \
"https://api.mailgun.net/v3/sandbox7d1aaf2f157f42d8844b1ac4c38a0ef7.mailgun.org/messages"
我该怎么做呢?当我使用代理截获这个curl调用时,我看到它正在发送以下字节:
POST https://api.mailgun.net/v3/sandbox7d1aaf2f157f42d8844b1ac4c38a0ef7.mailgun.org/messages HTTP/1.1
Host: api.mailgun.net
Authorization: Basic YYYYYYYYYYYYYYY
User-Agent: curl/7.54.0
Accept: */*
Content-Type: application/x-www-form-urlencoded
Content-Length: 183
from=Mailgun%20Sandbox%20%3Cpostmaster%40sandbox7d1aaf2f157f42d8844b1ac4c38a0ef7.mailgun.org%3E&to=Me%20%3Cmyemail%40gmail.com%3E&subject=Hello%20World1&text=Hello%20World2
很难在C++中重新创建它。如何确定Authorization
令牌?要做到这一点,必须有一种熟能生巧的方法。
梅尔贡网站列出了几种语言的示例片段,但没有列出C/C++。他们告诉我今天他们不为C/C++提供代码片段。
发布于 2020-04-14 13:35:14
这个授权看起来像基业。所以它是base64 64编码的用户:密码。
如果要验证,请尝试base64解码字符串并查看。不用说,这使得它完全不适合在HTTP上使用,因为它将以明文发送您的密码。
发布于 2020-04-14 05:35:14
您可以通过使用system()函数从c++调用curl命令。例如:
system("
curl \
--request POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--user 'api:XXXXXXXXXXXXXXXXXXXXX' \
--data-urlencode from='Mailgun Sandbox
<postmaster@sandbox7d1aaf2f157f42d8844b1ac4c38a0ef7.mailgun.org>' \
--data-urlencode to='Me <myemail@gmail.com>' \
--data-urlencode subject='Hello World1' \
--data-urlencode text='Hello World2' \
"https://api.mailgun.net/v3/sandbox7d1aaf2f157f42d8844b1ac4c38a0ef7.mailgun.org/messages"
");
然后,您可以将“XXXXXXXXXXXXX”替换为您通过注册从mailgun获得的令牌。
正如你所看到的,一旦你注册,你就可以从你的仪表板上得到你的钥匙。
https://stackoverflow.com/questions/61201230
复制相似问题