【问题标题】:Configure HTTP Post headers and body to send Twilio request配置 HTTP Post 标头和正文以发送 Twilio 请求
【发布时间】:2017-08-18 16:36:25
【问题描述】:

我正在尝试获取自定义构建的 HTTP Post 请求以执行对 twilio 的以下调用

curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/xxxxx/Messages.json' \
--data-urlencode 'To=+15558675309'  \
--data-urlencode 'From=+15017250604'  \
--data-urlencode 'Body=This is the ship that made the Kessel Run in fourteen parsecs?'  \
-d 'MediaUrl=https://c1.staticflickr.com/3/2899/14341091933_1e92e62d12_b.jpg' \
-u xxxxx:your_auth_token

我的自定义构建请求接受URL、标头和正文,类似于 Hurl.it 上的 HTTP Post 表单。

如何翻译这些部分

--data-urlencode 

-d

进入我的 URL、标题和正文?

示例:我将 -u 部分放入带有“授权:基本”的标头中,它运行良好,服务器识别我。我只是无法识别 From、To、Body 部分。

谢谢!

【问题讨论】:

  • 它们是你的 POST 变量。你是如何进行 HTTP POST 的?
  • 哪些变量?带有动词 POST 的 Http 请求具有精确的规范。实现协议的库应该意义不大。为此,您可以假设 http 帖子是串行发送的。

标签: http post twilio urlencode


【解决方案1】:

这里是 Twilio 开发者宣传员。

-d--data-urlencode 标志都表示将数据添加到 POST 请求正文。数据还需要进行 url 编码。发出请求时,所有 url 编码的数据都与 & 符号连接并作为正文发送。

在您的示例中,POST 请求正文最终将如下所示:

To=%2B15558675309&From=%2B15017250604&Body=This%20is%20the%20ship%20that%20made%20the%20Kessel%20Run%20in%20fourteen%20parsecs%3F&MediaUrl=https%3A%2F%2Fc1.staticflickr.com%2F3%2F2899%2F14341091933_1e92e62d12_b.jpg

让我知道这是否有帮助。

【讨论】:

  • 谢谢,但我无法让它工作。我的应用程序只允许内容类型为“application/json”。 twilio 是否只接受“application/x-www-form-urlencoded”? @philnash
  • 是的,您需要以 application/x-www-form-urlencoded 的形式提供数据。你的意思是你的应用程序只允许json?你不能围绕它编程吗?
  • 我们的应用程序仅支持用于与现代 Web 服务交互的最常见的内容类型。那是应用程序/json。我们显然可以改变它,但它会暴露更多的问题。我们当然可以更灵活,但到目前为止,我们还没有遇到任何需要这种实现的主要平台。我们正在与 fb、google、google maps (etc) 和相当多的其他 API 集成,没有一个有这样的要求。我们可以使用您的库进行集成,但对于我们用户的某些特定用例,我们只能说只有该选项是次优的。
  • 这里有个建议,为自己构建一个 Node.js Twilio Function,它接收来自 Twilio 的 webhook,将内容从 application/x-www-form-urlencoded 转换为 application/json 并将其发送到您的应用程序?
  • 嗯...或者实际上相反。您正在尝试向 Twilio 发送请求,您可以反过来进行翻译,调用 Twilio 函数,以正确的格式将其中继到 Twilio。
猜你喜欢
  • 2015-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 2016-07-03
  • 2021-08-13
  • 2023-03-04
  • 1970-01-01
相关资源
最近更新 更多