Twilio无法在处理Lucee/cfml SMS POST(通过CFHTP)时执行StatusCallback,其中包括编码的StatusCallback URL

Twilio无法在处理Lucee/cfml SMS POST(通过CFHTP)时执行StatusCallback,其中包括编码的StatusCallback URL,post,coldfusion,twilio,lucee,Post,Coldfusion,Twilio,Lucee,向Twilio SMS API发送相当简单的POST请求: cfhttp( method = "POST", charset = "utf-8", url = Twilio_API, username = Account_SID, password = Auth_Token,

向Twilio SMS API发送相当简单的POST请求:

        cfhttp(
        method          = "POST",
        charset         = "utf-8",
        url             = Twilio_API,
        username        = Account_SID,
        password        = Auth_Token,
        result          = "myResult"){
        //
        cfhttpparam(
            type    = "formField",
            name    = "To",
            value   = '+1615*******');
        //
        cfhttpparam(
            type    = "formField",
            name    = "From",
            value   = '+1714*******');
        //
        cfhttpparam(
            type    = "formField",
            name    = "Body",
            value   = 'This is a test message!');
        //
        cfhttpparam(
            type    = "formField",
            name    = "StatusCallback",
            value   = URLEncode(StatusCallback));
        //
    }
最后一个参数是问题:

            cfhttpparam(
            type    = "formField",
            name    = "StatusCallback",
            value   = URLEncode(StatusCallback));
        //
如果我对StatusCallback URL进行URL编码(在“StatusCallback”变量中),Twilio将以“错误-21609无效的StatusCallback URL”进行回复,但是,根据RFC 3986,编码是正确的,并在(UTF-8转换)处确认。这是一个非常简单的过程。我们遇到的问题是,如果我们正确地对StatusCallback URL进行URL编码,我们会得到错误,如果我们不对URL编码,我们什么也得不到-没有错误,也没有对服务器进行StatusCallback,但是实际的SMS仍然没有问题。无论哪种方式,我们的日志中都没有显示任何内容-Twilio从未接触过我们的服务器

我们是否需要采用某种特殊的URL编码格式来让Twilio识别我们的StausCallback处理程序URL?URL也没有什么特别之处:

我确实注意到Twilio对其参数的大小写很挑剔(“statusCallback”作为表单字段失败,而“statusCallback”工作正常)


有什么想法吗?我们主要感兴趣的是如何对回调URL进行编码,以使Twilio喜欢它,而不是重新调整整个方法。

StatusCallback URL编码与未编码之间的区别是什么?正在/正在编码的字符是什么?您给出的示例完全没有编码,因此它们应该是相同的。什么是“StatusCallback”变量,它是一个结构?如果是这样,则该键可能正在转换为所有大写字母。