10

这不是 Twilio 特定的,但该问题确实会导致 Twilio API 调用失败。

我想通过 Twilio 的实验室生成一个 XML 文件:

http://twimlets.com/echo?Twiml=%3CResponse%3E%3CSay%3EHi+there.%3C%2FSay%3E%3C%2FResponse%3E

上面的 URL 作为 API 中的参数非常有用,如果您使用浏览器查看输出,显然可以使用。

我还可以在浏览器中查看以下内容,它工作正常,但是这个版本的 URL 作为 Twilio API 的参数失败了

http://twimlets.com/echo?Twiml=Response><Say>Hi+there.</Say></Response>

为了可读性和调试,我喜欢使用第二个 URL。C# 中是否有库或其他方式将第二个漂亮的 URL 转换为第一个,将 %3C 替换为 '<' 字符等等?然后我可以在将其发送到 API 之前进行替换,因为我的应用程序会四处推送并将漂亮的版本存储在其他任何地方。我当然可以自己写一个来进行转换,但这似乎是一个常见问题。谢谢!

4

1 回答 1

25

这可能是您正在寻找的吗?

private void Form1_Load(object sender, EventArgs e)
{
    string encoded = "http://twimlets.com/echo?Twiml=%3CResponse%3E%3CSay%3EHi+there.%3C%2FSay%3E%3C%2FResponse%3E";
   string decoded = Uri.UnescapeDataString(encoded);
}

输出 - 未转义的字符串:

http://twimlets.com/echo?Twiml=<Response><Say>Hi+there.</Say></Response>

并恢复正常:

string encoded = Uri.EscapeDataString(decoded);

输出 - 转义字符串:

http://twimlets.com/echo?Twiml=%3CResponse%3E%3CSay%3EHi+there.%3C%2FSay%3E%3C%2FResponse%3E
于 2013-01-29T02:40:14.217 回答