繁体   English   中英

如何将此 Curl HTTP 转换为 Arduino C++?

[英]How to convert this Curl HTTP into Arduino C++?

我正在使用这个简单的 ArduinoHttpClient 示例代码将示例 POST 请求从我的 Arduino Uno WiFi Rev2 发送到可公开访问的 URL。 有用。 我得到了合法的回应。

但是现在,我想从我的 Arduino 代码中发送一个 HTTP 请求,该代码模仿这个 curl 调用以通过 MailABun 33 发送 Z0C83F57C786ACBC4BA

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令牌是如何确定的? 必须有一种惯用/众所周知的方式来做到这一点。

Mailgun网站列出了几种语言的示例片段,但不包括 C/C++。 他们今天告诉我他们不提供 C/C++ 的代码片段。

在此处输入图像描述]

该授权看起来像basic auth 所以它是base64编码的用户:密码

如果您想验证尝试 base64 解码字符串并查看。 不用说,这使得它完全不适合在 HTTP 上使用,因为它会以明文形式发送您的密码。

您可以使用 system() function 从 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"
");

然后,您可以用您通过注册从 mailgun 获得的令牌替换“XXXXXXXXXXXXX”。

如您所见,您可以在注册后从仪表板获取密钥。 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM