Many times, people use Uri.ToString() to convert Uri back into String. However, based on the documentation, ToString() actually returns the canonical string representation of the actual URL. This means the special characters that were previously escaped will be unescaped. If you try to use a string that returns from the function, it will be ok in most case except when you have escaped characters in there such as "%20" (" "), "%2b" ("+"), "%25 ("%"), etc. To make the code works right, you should actually ......