这不是 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 之前进行替换,因为我的应用程序会四处推送并将漂亮的版本存储在其他地方。我当然可以自己写一个来进行转换,但这似乎是一个常见问题。谢谢!
最佳答案
这可能是您正在寻找的东西吗?
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
关于c# - 将 Twilio 的字符串转换为 "URL Safe"字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14574695/