我试图从web服务器加载包含带西里尔字符参数的请求URL的文件。 但我没有得到这个工作在C#中,即使我的网址编码的参数。c#使用带URL编码西里尔字符的URL的WebClient问题
当我在IE中打开页面
http://translate.google.com/translate_tts?tl=ru&q =ЗДРАВСТВУЙТЕ
服务器没有响应。
使用URL编码版本如预期
http://translate.google.com/translate_tts?tl=ru&q=%d0%97%d0%94%d0%a0%d0%90%d0%92%d0%a1%d0%a2%d0%92%d0%a3%d0%99%d0%a2%d0%95
服务器响应。
现在我的问题:
我想从C#下载MP3 ...
var url = string.Format("http://translate.google.com/translate_tts?tl=ru&q={0}",
Server.UrlEncode("ЗДРАВСТВУЙТЕ"));
System.Net.WebClient client = new WebClient();
var res = client.DownloadData(url);
这并不使用西里尔字符工作。我总是得到一个零字节答案,就像第一个非编码请求。 当我发送“正常”字符时,上面的代码工作正常。
所以......我做错了什么。 任何提示?的窍门?解决方案?
感谢
迈克尔
伟大的作品,谢谢。只是为了让我明白:为什么我需要用户代理,当我发送西里尔-URL和拉丁URL? – Dark 2011-02-17 04:43:39