这不是Twilio特有的,但问题确实导致Twilio API调用失败.
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转换为第一个,替换
这可能是你在找什么?
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”字符串 - 代码日志
解决方法
这可能是你在找什么?
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