Twilio SendSmsMessage与callbackURL无法正常工作?

时间:2015-03-12 15:35:41

标签: twilio

我正在使用C#与RestSharp版本105.0.1和Twilio版本3.6.27。我有一个HTTP侦听器设置,它可以使用GET或POST配置来传入我的twilio电话号码。当我使用SendSmsMessage方法并将statusCallback设置为传入SMS消息的Twilio配置中的相同URL时,我没有收到任何POST到该URL的内容。消息很好,我在返回的消息对象中返回sid,并可以检查它的状态。

有人做过这项工作吗?如果是这样,你能提供任何想法来帮我调试这个问题吗?

编辑: 我花了一些时间把它缩小了一点。我的httpListener使用http://blog.mikehacker.net/2006/11/13/httplistener-and-forms/中的代码来解析POST数据。它检查httpListenerRequest.HasEntityBody,并且仅在尝试解析数据时才尝试解析数据。实际上,当我向我的twilio号码发送消息时,POST消息将HasEntityBody设置为true,并且数据被正确解析出来。当我从RestAPI发送消息OUT并指定回调URL时,POST消息不会将HasEntityBody设置为true,因此从不尝试解析。即使我忽略了HasEntityBody的状态,它似乎并不像StreamReader获取任何数据,即使我在wireshark捕获中看到它。

非常感谢任何进一步的想法/见解!

1 个答案:

答案 0 :(得分:1)

问题已解决,回调网址的工作方式与宣传的一样。上面引用的Mike Hacker博客帖子中的代码假定内容类型为“application / x-www-form-urlencoded”,当Twilio POST传入的SMS消息时,它发送的内容类型为什么,因此代码可以正常工作。当Twilio发布到回调URL时,它将内容类型字符串发送为“application / x-www-form-urlencoded; charset = utf-8“,它打破了解析逻辑。简单的解决方法是将相等的测试更改为“包含”。我之前关于HasEntityBody的评论是我的调试错误,抱歉。