Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting a string to a "URL Safe" string for Twilio

Tags:

c#

url

twilio

This isn't Twilio specific, but the issue does cause the Twilio API call to fail..

I'm wanting to generate an XML file via Twilio's lab:

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

The above URL works great as a parameter in the API and obviously works if you use your browser to view the output.

I can also view the following in the browser, and it works fine, but this version of the URL fails as a parameter to the Twilio API

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

For readability and debugging I would much prefer to have the second URL. Is there a library or other way in C# to convert the second, pretty URL to the first, replacing %3C with the '<' character and so on? I could then just do the replacement right before I send it off to the API since my app pushes around and stores the pretty version everywhere else. I can of course write one myself to do the conversion, but it seems like this would be a common problem. Thanks!

like image 391
Ryan Hayes Avatar asked Jan 29 '13 02:01

Ryan Hayes


1 Answers

Is this perhaps what you are looking for?

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);
}

Output - Unescaped string:

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

And back to normal:

string encoded = Uri.EscapeDataString(decoded);

Output - escaped string:

http://twimlets.com/echo?Twiml=%3CResponse%3E%3CSay%3EHi+there.%3C%2FSay%3E%3C%2FResponse%3E
like image 131
Hanlet Escaño Avatar answered Nov 10 '22 00:11

Hanlet Escaño